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

Post on 11-Jun-2015

977 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

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

top related