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.
2. 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 Fundamentos de Programação 22
3. 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
resultado
2013/2014 Fundamentos de Programação 3
4. Completar frase «Actor, esta função/repórter
devolve/reporta …»
2013/2014 Fundamentos de Programação 4
5. 2013/2014 Fundamentos de Programação 5
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.
6. 2013/2014 Fundamentos de Programação 6Introdução à Programação
Argumento. Um
argumento por
cada parâmetro.
7. 2013/2014 Fundamentos de Programação 7
Entradas.
Saída.
Passos:
Cálculo do mínimo. Pode
transformar-se em função.
Algoritmo simplório.
11. 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 11
12. 2013/2014 Fundamentos de Programação 12
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
13. Objecto que guarda sequência de itens
Ordem dos itens relevante
Identificação de valores usando índices
Índice do primeiro valor: um ou zero
Exemplo
2013/2014 Fundamentos de Programação 13
Índices.
Itens
com
valores.
Lista lista.
8 4 2 0 1 1 0 7
1 2 3 4 5 6 7 8
lista
Snap! Java
Mentirita! lista é na
realidade uma
referência para uma
lista algures na
memória.
14. 2013/2014 Fundamentos de Programação 14
0 0 0 0 0
1 2 3 4 5
uma lista
2 0 5 8
1 2 3 4
outra lista
personalizado...
15. 2 0 5 8
1 2 3 4
outra lista
0 0 0 0 0
1 2 3 4 5
uma lista
2013/2014 Fundamentos de Programação 15
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.
16. Iteração
Contagem
Acumulação
Memória temporária
Etc.
2013/2014 Fundamentos de Programação 16
17. Variável com valores sucessivos
correspondentes índices de lista (indexação),
etc.
Exemplo
2013/2014 Fundamentos de Programação 17
Variável para
iteração.
18. Variável guardando valor de contagem
Exemplo
2013/2014 Fundamentos de Programação 18
Variável para
contagem.
19. Variável guardando acumulação de operação
Exemplo
2013/2014 Fundamentos de Programação 19
Variável para
acumulação
da soma.
20. Variável guardando acumulação de operação
Exemplo
2013/2014 Fundamentos de Programação 20
Variável para
“acumulação”
do máximo.
21. Variável para guardar valor temporariamente
Exemplo
2013/2014 Fundamentos de Programação 21
Variável para
memória
temporária.