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

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
 
Banco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaBanco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaJuliano Padilha
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)Marcello Thiry
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...Marcello Thiry
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01thomasdacosta
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAndré Constantino da Silva
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listassamuelthiago
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmosPablo Silva
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoWesley R. Bezerra
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPSTrabalhosCVIGR
 

Mais procurados (20)

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
 
Banco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaBanco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de Concorrência
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Java - Primeiros passos
Java - Primeiros passosJava - Primeiros passos
Java - Primeiros passos
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
 
Ciclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemasCiclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemas
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de Usuário
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listas
 
Sistema binario
Sistema binarioSistema binario
Sistema binario
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetição
 
Pascal Registros
Pascal RegistrosPascal Registros
Pascal Registros
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPS
 

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
 
Clp allen bralley aula 04
Clp allen bralley aula 04Clp allen bralley aula 04
Clp allen bralley aula 04
 
Aula04
Aula04Aula04
Aula04
 
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)
 

Último

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 

Último (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

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