Skip to content

🧮 Primeiro projeto do livro: Elixir do zero a concorrência (Casa do Código)

Notifications You must be signed in to change notification settings

maiquitome/average_calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧮 Calculadora de Médias 🧮

Primeiro projeto do livro: Elixir do zero a concorrência (Casa do Código)


elixir book

Assista a video aula do projeto

O objetivo desta aplicação é bastante simples. Dado que eu passe uma lista de estudantes com suas notas, ela deve ser capaz de me retornar uma lista dos estudantes com suas médias. Além disso, ela também precisa me informar qual foi a melhor média da classe.

A estrutura de um aluno ficou assim:

%Student{
  name: "João Joaquim",
  results: [
    %Subject{name: "Matemática", result: 9.8},
    %Subject{name: "Português", result: 3.9},
    %Subject{name: "Geografia", result: 9.8},
    %Subject{name: "História", result: 9.8}
  ]
}

💻 Iniciando o Projeto

Compilando todos os módulos dentro do diretório do projeto:

$ elixirc calculator.ex student.ex subject.ex

Depois de compilar todos os módulos, alguns arquivos com a extensão .beam serão gerados no diretório. Estes são arquivos de bytecode que a máquina virtual vai executar.

Como todos os módulos estão compilados dentro da mesma pasta, o IEx pode ser chamado dentro desta pasta e ele automaticamente terá acesso a todos eles.

$ iex

Vamos então executar o start principal para vermos o resultado. Faremos Pattern Matching do resultado para uma variável result com o resultado geral, e best para os melhores.

$ iex> {result, best} = Calculator.start()

{[
   %{average: 4.78, first_name: "João", last_name: "Joaquim"},
   %{average: 6.78, first_name: "Maria", last_name: "Silva"},
   %{average: 6.8, first_name: "Pedro", last_name: "Pedrada"},
   %{average: 4.48, first_name: "Kauã", last_name: "Camboinhas"}
 ], [%{average: 6.8, first_name: "Pedro", last_name: "Pedrada"}]}
$ iex> result

[
  %{average: 4.78, first_name: "João", last_name: "Joaquim"},
  %{average: 6.78, first_name: "Maria", last_name: "Silva"},
  %{average: 6.8, first_name: "Pedro", last_name: "Pedrada"},
  %{average: 4.48, first_name: "Kauã", last_name: "Camboinhas"}
]
$ iex> best

[%{average: 6.8, first_name: "Pedro", last_name: "Pedrada"}]

🚀 Tecnologias usadas nesse projeto

Elixir


Made with ♥ by Maiqui Tomé 😀

Reach out to me 👇

Dev Linkedin Codepen Youtube Instagram Facebook Twitter

About

🧮 Primeiro projeto do livro: Elixir do zero a concorrência (Casa do Código)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages