Partilhar: WhatsApp
aulify
UC UC04371 · T. Produção de Conteúdos I

Ficha 01 · Conceitos, algoritmos e estruturas de dados genéricas

Programação genérica, tipos de linguagem, algoritmos, estruturas de dados e tipagem dinâmica
Versão · Aluno
Tempo · 3 horas
Aluno(a)
Turma
Data

Exercício 1 · O que é código genérico

Explica, por palavras tuas, o que é código genérico e dá um exemplo, do dia a dia de um curso de conteúdos interativos, de duas funções que poderiam ser substituídas por uma só função genérica.

Exercício 2 · Princípios da programação genérica

Associa cada princípio ao exemplo correto: (a) DRY; (b) abstração; (c) independência de tipo; (d) baixo acoplamento.

  1. Uma função ordenar(lista, comparar) que não precisa de saber se recebe números ou texto.
  2. Extrair para uma só função uma lógica que estava repetida em três sítios do programa.
  3. Um módulo de estatísticas que só depende de um evento, não de conhecer os outros módulos em detalhe.
  4. Pensar primeiro no que "conteúdo digital" tem de comum, antes de programar imagem, vídeo ou quiz.

Exercício 3 · Classificar linguagens

Classifica cada afirmação como verdadeira (V) ou falsa (F): (a) JavaScript é uma linguagem de tipagem estática; (b) uma linguagem interpretada é executada linha a linha, em tempo de execução; (c) o paradigma orientado a objetos agrupa dados e comportamento em objetos; (d) uma linguagem só pode seguir um único paradigma.

Exercício 4 · Escrever um algoritmo genérico

Tens uma função somarNumeros(lista) que soma uma lista de números. Reescreve-a como uma função genérica reduzir(lista, operacao, inicial) que sirva também para multiplicar ou concatenar texto. Mostra como a usarias para somar [1, 2, 3, 4].

Exercício 5 · Escolher a estrutura de dados certa

Para cada situação, indica a estrutura de dados mais adequada (array, objeto, Set, Queue ou Stack) e justifica: (a) as tags de um curso, sem repetições; (b) o histórico de "recuar" de um quiz; (c) a fila de reprodução de uma playlist de vídeos; (d) as propriedades de um único conteúdo (título, tipo, url).

Exercício 6 · Tipagem dinâmica: prever o comportamento

Sem correr o código, indica o tipo de valor depois de cada linha, e explica o que acontece de diferente numa linguagem de tipagem estática como o Java.

let valor = 25;
valor = "vinte e cinco";
valor = [25];

Exercício 7 · Verificar o tipo antes de usar

A função seguinte falha quando recebe um valor que não é um objeto de conteúdo. Corrige-a para verificar o tipo e lançar um erro controlado, em vez de deixar o programa rebentar mais tarde.

function mostrarConteudo(item) {
  console.log(`${item.tipo}: ${item.titulo}`);
}