3. funções/repórteres e listas em snap!; utilização de variáveis – fundamentos de...

23
Apresentação 3 Funções/repórteres e listas em Snap! Utilizações típicas de variáveis 2013/2014 Fundamentos de Programação 1

Upload: manuel-menezes-de-sequeira

Post on 11-Jun-2015

975 views

Category:

Education


2 download

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

Page 1: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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

Page 2: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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

Page 3: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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

Page 4: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

Fundamentos de Programação 4

Nomeando funções/repórteres

Completar frase «Actor, esta função/repórter devolve/reporta …»

2013/2014

Page 5: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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.

Page 6: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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.

Page 7: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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.

Page 8: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

Fundamentos de Programação 8

Função/repórter que calcula o mdc

2013/2014

definição…

invocação…

Page 9: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

Fundamentos de Programação 9

Função/repórter que calcula o mdc

2013/2014

Algoritmo de Euclides.

Page 10: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

Fundamentos de Programação 10

Função/repórter que calcula o mdc

2013/2014

Algoritmo de Euclides na sua forma recursiva.

Page 11: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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

Page 12: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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

Page 13: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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.

Page 14: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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...

Page 15: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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.

Page 16: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

Fundamentos de Programação 16

Utilizações típicas de variáveis

IteraçãoContagemAcumulaçãoMemória temporáriaEtc.

2013/2014

Page 17: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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.

Page 18: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

Fundamentos de Programação 18

Contagem

Variável guardando valor de contagem

Exemplo

2013/2014

Variável para contagem.

Page 19: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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.

Page 20: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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.

Page 21: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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.

Page 22: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

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

Page 23: 3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamentos de Programação

Fundamentos de Programação 23

Sumário

Funções/repórteres e listas em Snap!Utilizações típicas de variáveis

2013/2014