Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

E5R Hackathon

Desafios para Hackathon E5R.

Para cada desafio, você deve tornar a síntaxe na classe Hackathon implementando a classe HackathonChallenge.

A regra básica é: A classe Hackathon não deve ser alterada

Além da regra básica, cada desafio impõe suas próprias regras que também devem ser obedecidas.

classHackathonChallenge{/* TODO... */}

Desafio 1 - Callback

Regras:

  • Só faça funcionar!
classHackathon:HackathonChallenge{publicHackathon(){Feature("Somar")("Calcula a soma entre números inteiros,")("produzindo resultados matematicamente coerentes.");}}

Desafio 2 - Operações matemáticas básicas

Regras:

  • Os únicos operadores matemáticos permitidos são + e -.
classHackathon:HackathonChallenge{publicHackathon(){// 2 + 2 = 4Assert(Soma(2,2)==4);// 4 - 2 = 2Assert(Subtrai(4,2)==2);// 5 * 2 = 10Assert(Multiplica(5,2)==10);// 12 / 3 = 4Assert(Divide(12,3)==4);boolerrouDivisao=false;// 10 / 0 = !{erro de divisão por zero}try{Divide(10,0);}catch(DivideByZeroException){errouDivisao=true;}Assert(errouDivisao);}}

Desafio 3 - Paginação

Imagine uma lista de itens qualquer:

IList<object>;

Uma função que receba uma lista, um número de página atual, um número de registros por página, um limite máximo para exibição de páginas, deve:

  • Calcular o número de páginas possíveis dentro da lista fornecida;
  • Retornar uma lista de páginas onde a página atual esteja o maix próximo possível do centro da lista;
  • Não exceder o limite máximo de páginas a exibir;

Expectativa

maximoPaginaExibicao = 5
totalPaginas = 10
paginaAtual = 5
1 2 3 4 5
+---------------+
1, 2, | 3, 4, 5, 6, 7 |, 8, 9, 10
|
*
maximoPaginaExibicao = 5
totalPaginas = 10
paginaAtual = 2
1 2 3 4 5
+---------------+
| 1, 2, 3, 4, 5 |, 6, 7, 8, 9, 10
|
*
maximoPaginaExibicao = 5
totalPaginas = 10
paginaAtual = 10
1 2 3 4 5
+----------------+
1, 2, 3, 4, 5 , | 6, 7, 8, 9, 10 |
|
*

Desafio 4 - Cron Jobs

Construa um executor de jobs tipo CRON

  • Pense em um agendador de próximos passos
  • Pense em um executor independente
  • Pense em um sistema de log independente
  • Pense em executar em containers

Desafio 5 - Notas de lançamento Git

Construa um executável que seja capaz de ler um repositório git de um commit em diante e montar um Markdown de notas de lançamento.

  • Pense em Conventional Commits
  • Pense em agrupamento de commits por tipo de contribuição
  • Pense em links
  • Pense em mais detalhes
  • Pense em alertas de breaking changes

About

E5R Hackathon

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors