Skip to content

Latest commit

 

History

History
103 lines (58 loc) · 3.83 KB

03.md

File metadata and controls

103 lines (58 loc) · 3.83 KB

Coleções de dados

Nestes problemas, o foco está na capacidade de entender como dados podem ser organizados em coleções e como processá-los para extrair informações.

Lembre-se das três etapas que devem ser seguidas para resolução de cada problema:

  1. Abstrair e modelar o problema
  2. Propor uma solução algorítmica
  3. Implementar e avaliar a solução proposta

Para desenvolver corretamente estas habilidades, utilizaremos o conceito de computação desplugada.

Isto significa que você deverá propor a solução sem o auxílio do computador, apenas com caneta e papel.

Só com a solução já proposta é que você deve implementá-la com blocos ou uma linguagem e testar sua solução 😏

Índice

  1. Processando listas
  2. Mascarando telefones
  3. Testando combinações
  4. Pedaço de senha

Processando listas

Dados são uma parte fundamental da computação, mas nem sempre haverá um usuário interagindo com seu código.

Coleções de dados são ferramentas que permitem lidar com lotes de dados e listas são o exemplo mais conhecido de coleções.

Volte aos exercícios do roteiro 02 e considere que os dados da questão Márveu versus Cápicon estejam em uma lista.

Algumas dicas:

  • Crie a lista armazenando os dados informados pelo usuário.
  • Percorrer os elementos de uma coleção é uma tarefa conhecida como iteração.
  • A lógica dos seus códigos será pouco alterada 🙃

Mascarando telefones

Cassius é um corretor que faz de tudo para que seus colegas não roubem seus clientes.

Ao criar um contato em sua agenda telefônica, ele salva dez números em vez do telefone do cliente.

Quando deseja chamar um cliente, ele usa o primeiro número como divididendo e, para cada um dos nove números seguintes, calcula o resto de sua divisão inteira pelo dividendo.

Escreva um código que ajude Cassius a extrair os telefones de seus clientes, considerando que ele irá informar 10 números.


Testando combinações

Seth tinha uma forma peculiar de guardar suas senhas de números.

Para cada senha, ele cria um conjunto de números e armazena uma soma.

Para recuperar a senha, basta identificar qual par de números gera a soma guardada.

Depois, é só ordenar o par.

Escreva um código para ajudá-lo, considerando que Seth vai te informar a soma e em seguida 10 números.


Pedaço de senha

Zac tem um método diferente para gerar suas senhas.

Em vez de escolher a senha, ele escolhe uma frase que seja fácil de lembrar.

Dentro dessa frase, ele identifica qual o maior trecho que não contém letras repetidas, e usa esse trecho como senha.

Escreva um código para ajudar Zac a gerar uma senha, considerando que ele vai te informar uma frase.


Insights

Se você ainda não resolveu os problemas acima, volte para esta seção mais tarde 👻

Os insights abaixo servem para enriquecer seu aprendizado com os problemas apresentados neste roteiro.

Alguns insights são dicas que te desafiam a resolver o problema novamente sob outra perspectiva ✅

Mascarando telefones

Produzir uma lista a partir de outra usando uma função de processamento é uma técnica conhecida como transformação.

Testando combinações [1]

Iterar sobre múltiplos elementos exige o uso de múltiplos iteradores. A forma mais simples de fazer isso é usando laços aninhados.

Testando combinações [2]

É possível resolver esta questão sem usar laços aninhados. Pesquise sobre ordenação de listas 😉

Pedaço de senha [1]

Textos são geralmente considerados listas de letras.