Funções/repórteres e listas em Snap!
Utilizações típicas de variáveis
2013/2014 Fundamentos de Programação 1
 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
 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
 Completar frase «Actor, esta função/repórter
devolve/reporta …»
2013/2014 Fundamentos de Programação 4
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.
2013/2014 Fundamentos de Programação 6Introdução à Programação
Argumento. Um
argumento por
cada parâmetro.
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.
2013/2014 Fundamentos de Programação 8
definição…
invocação…
2013/2014 Fundamentos de Programação 9
Algoritmo de Euclides.
2013/2014 Fundamentos de Programação 10
Algoritmo de Euclides
na sua forma recursiva.
 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
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
 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.
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...
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.
 Iteração
 Contagem
 Acumulação
 Memória temporária
 Etc.
2013/2014 Fundamentos de Programação 16
 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.
 Variável guardando valor de contagem
 Exemplo
2013/2014 Fundamentos de Programação 18
Variável para
contagem.
 Variável guardando acumulação de operação
 Exemplo
2013/2014 Fundamentos de Programação 19
Variável para
acumulação
da soma.
 Variável guardando acumulação de operação
 Exemplo
2013/2014 Fundamentos de Programação 20
Variável para
“acumulação”
do máximo.
 Variável para guardar valor temporariamente
 Exemplo
2013/2014 Fundamentos de Programação 21
Variável para
memória
temporária.
 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 Fundamentos de Programação 2222
 Funções/repórteres e listas em Snap!
 Utilizações típicas de variáveis
2013/2014 Fundamentos de Programação 23

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

  • 1.
    Funções/repórteres e listasem Snap! Utilizações típicas de variáveis 2013/2014 Fundamentos de Programação 1
  • 2.
     Programação comoarte 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 deinstruçõ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 deProgramaçã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 deProgramação 6Introdução à Programação Argumento. Um argumento por cada parâmetro.
  • 7.
    2013/2014 Fundamentos deProgramação 7 Entradas. Saída. Passos: Cálculo do mínimo. Pode transformar-se em função. Algoritmo simplório.
  • 8.
    2013/2014 Fundamentos deProgramação 8 definição… invocação…
  • 9.
    2013/2014 Fundamentos deProgramação 9 Algoritmo de Euclides.
  • 10.
    2013/2014 Fundamentos deProgramação 10 Algoritmo de Euclides na sua forma recursiva.
  • 11.
     Devem limitar-sea 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 deProgramaçã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 queguarda 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 deProgramaçã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 58 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 comvalores sucessivos correspondentes índices de lista (indexação), etc.  Exemplo 2013/2014 Fundamentos de Programação 17 Variável para iteração.
  • 18.
     Variável guardandovalor de contagem  Exemplo 2013/2014 Fundamentos de Programação 18 Variável para contagem.
  • 19.
     Variável guardandoacumulação de operação  Exemplo 2013/2014 Fundamentos de Programação 19 Variável para acumulação da soma.
  • 20.
     Variável guardandoacumulação de operação  Exemplo 2013/2014 Fundamentos de Programação 20 Variável para “acumulação” do máximo.
  • 21.
     Variável paraguardar valor temporariamente  Exemplo 2013/2014 Fundamentos de Programação 21 Variável para memória temporária.
  • 22.
     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 Fundamentos de Programação 2222
  • 23.
     Funções/repórteres elistas em Snap!  Utilizações típicas de variáveis 2013/2014 Fundamentos de Programação 23