3. funções/repórteres e listas em snap!; utilização de variáveis – fundamentos de...
DESCRIPTION
Fundamentos da Programação 3: • Funções/repórteres e listas em Snap! • Utilizações típicas de variáveis Apresentação 3 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.TRANSCRIPT
Fundamentos de Programação 1
Apresentação 3
Funções/repórteres e listas em Snap!Utilizações típicas de variáveis
2013/2014
Fundamentos de Programação 2
Da apresentação anterior… Programação como arte de resolver
problemas
Algoritmo como sequência finita de instruções que resolvem um dado problema
Implementação de algoritmos em Snap! Variáveis Instruções de selecção Iterações e ciclos Instruções de leitura/escrita
2013/2014 2
Fundamentos de Programação 3
Função/repórter
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 função/repórter
calcula) Entradas (ou parâmetros) Instruções que executam o cálculo Instruções que reportam (ou devolvem) o
resultado2013/2014
Fundamentos de Programação 4
Nomeando funções/repórteres
Completar frase «Actor, esta função/repórter devolve/reporta …»
2013/2014
Fundamentos de Programação 5
Definição de função/repórter
2013/2014
Reportar ou devolver o valor calculado.
Introdução à Programação
Variável local. Acessível apenas dentro da função.
Corpo ou implementação da função.
Cabeçalho ou protótipo.
Entrada ou parâmetro.
Fundamentos de Programação 6
Invocação de função/repórter
2013/2014 Introdução à Programação
Argumento. Um argumento por cada parâmetro.
Fundamentos de Programação 7
Função/repórter que calcula o mdc
2013/2014
Entradas.
Saída.
Passos:
Cálculo do mínimo. Pode transformar-se em função.
Algoritmo simplório.
Fundamentos de Programação 8
Função/repórter que calcula o mdc
2013/2014
definição…
invocação…
Fundamentos de Programação 9
Função/repórter que calcula o mdc
2013/2014
Algoritmo de Euclides.
Fundamentos de Programação 10
Função/repórter que calcula o mdc
2013/2014
Algoritmo de Euclides na sua forma recursiva.
Fundamentos de Programação 11
Funções/repórteres: boas práticas
Devem limitar-se a cálculo em causa
Não devem ter efeitos laterais
Mas ler do teclado e escrever no ecrã são efeitos laterais!
Logo... ... Funções/repórteres não devem ler do
teclado ou escrever no ecrã!
2013/2014
Fundamentos de Programação 12
Funções/repórteres: vantagens
2013/2014
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
Fundamentos de Programação 13
Lista
Objecto que guarda sequência de itens
Ordem dos itens relevante Identificação de valores usando
índices Índice do primeiro valor: um ou zeroExemplo
2013/2014
Índices.
Itens com valores.
Lista lista.
8 4 2 0 1 1 0 71 2 3 4 5 6 7 8
lista
Snap! Java
Mentirita! lista é na realidade uma referência para uma lista algures na memória.
Fundamentos de Programação 14
Construção de listas
2013/2014
0 0 0 0 01 2 3 4 5
uma lista
2 0 5 81 2 3 4
outra lista
personalizado...
Fundamentos de Programação 15
2 0 5 81 2 3 4
outra lista
0 0 0 0 01 2 3 4 5
uma lista
Operações e comandos com listas
2013/2014
Reporta comprimento da lista passada como argumento.Reporta valor do item na posição passada como 1.º argumento da lista passada como 2.º argumento.Altera o valor do item na posição dada pelo 1.º argumento da lista passada como 2.º argumento para o valor passado como 3.º argumento.
Reporta o 3.º item de «outra lista», com valor 5.
Reporta 5.
Altera para 7 o valor do 3.º item de «outra lista», antes com o valor 5.
Fundamentos de Programação 16
Utilizações típicas de variáveis
IteraçãoContagemAcumulaçãoMemória temporáriaEtc.
2013/2014
Fundamentos de Programação 17
Iteração
Variável com valores sucessivos correspondentes índices de lista (indexação), etc.
Exemplo
2013/2014
Variável para iteração.
Fundamentos de Programação 18
Contagem
Variável guardando valor de contagem
Exemplo
2013/2014
Variável para contagem.
Fundamentos de Programação 19
Acumulação
Variável guardando acumulação de operação
Exemplo
2013/2014
Variável para acumulação da soma.
Fundamentos de Programação 20
Acumulação: caso especial
Variável guardando acumulação de operação
Exemplo
2013/2014
Variável para “acumulação” do máximo.
Fundamentos de Programação 21
Memória temporária
Variável para guardar valor temporariamente
Exemplo
2013/2014
Variável para memória temporária.
Fundamentos de Programação 22
A reter
Snap! Funções/repórteres Listas
Utilizações típicas de variáveis Iteração Contagem Acumulação (casos especiais) Memória temporária
2013/2014 22
Fundamentos de Programação 23
Sumário
Funções/repórteres e listas em Snap!Utilizações típicas de variáveis
2013/2014