Percursos
/
Factor
Factor
/
Exercícios
/
Escola primária
Escola primária

Escola primária

Médio

Instruções

Dados os nomes dos alunos e o ano que frequentam, cria uma lista de alunos para a escola.

No final, deves ser capaz de:

  • Adicionar o nome de um aluno à lista de alunos de um ano:
    • "Adiciona o Jim ao ano 2."
    • "OK."
  • Obter uma lista de todos os alunos inscritos num ano:
    • "Que alunos estão no ano 2?"
    • "Por agora só temos o Jim."
  • Obter uma lista ordenada de todos os alunos de todos os anos. Os anos devem ser ordenados como 1, 2, 3, etc., e os alunos dentro de um ano devem ser ordenados alfabeticamente pelo nome.
    • "Quem está inscrito na escola neste momento?"
    • "Deixa-me pensar. Temos a Anna, a Barb e o Charlie no ano 1, o Alex, o Peter e a Zoe no ano 2, e o Jim no ano 5. Então a resposta é: Anna, Barb, Charlie, Alex, Peter, Zoe e Jim."

Repara que todos os nossos alunos têm apenas um nome (é uma cidade pequena, que esperavas?), e cada aluno não pode ser adicionado mais do que uma vez a um ano ou à lista de alunos. Se um teste tentar adicionar o mesmo aluno mais do que uma vez, a tua implementação deve indicar que isso está incorreto.

Palavras

Define um tuplo school para guardar a lista de alunos — a forma como guardas os alunos dentro dele é contigo — e depois implementa as palavras abaixo.

  • <school> ( -- school ): constrói uma escola vazia.
  • add-student ( school name grade -- ? ): adiciona name ao grade. Devolve t em caso de sucesso, ou f se name já tiver sido adicionado (a este ou a qualquer outro ano), caso em que a lista de alunos fica inalterada.
  • roster ( school -- names ): todos os alunos, ordenados por ano e depois alfabeticamente por nome.
  • grade ( school n -- names ): os alunos do ano n, ordenados alfabeticamente por nome.

Fonte

Uma sessão de programação em par com Phil Battos na gSchool
Editar via GitHub A ligação abre numa nova janela ou separador
Factor Exercism

Estás pronto para começar Escola primária?

Inscreve-te no Exercism para aprenderes e dominares Factor com 47 conceitos163 exercícios, e mentoria humana real, tudo grátis.