Skip to content

Instantly share code, notes, and snippets.

@romulogarofalo
Created August 14, 2019 02:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save romulogarofalo/928b49ef03c8528c62df0ff46e577ccd to your computer and use it in GitHub Desktop.
Save romulogarofalo/928b49ef03c8528c62df0ff46e577ccd to your computer and use it in GitHub Desktop.
Aula2Projeto. todo o conteúdo do projeto criado para o video de aula2
module Projeto where
data Cargo = Estagiario | Programador | Coordenador | Gerente deriving Show
data Pessoa = Pessoa {
cargo :: Cargo,
nome :: String
} deriving Show
verSalario :: Pessoa -> Double
verSalario (Pessoa Estagiario _) = 1500
verSalario (Pessoa Programador _) = 5750.15
verSalario (Pessoa Coordenador _) = 8000
verSalario (Pessoa Gerente _) = 10807.20
verFolha :: Pessoa -> String
verFolha p = "{nome: \"" ++ (nome p) ++
"\", cargo: \"" ++ show (cargo p) ++
"\", salario: " ++ show (verSalario p) ++ "}"
promover :: Pessoa -> Pessoa
promover (Pessoa Estagiario n) = Pessoa Programador n
promover (Pessoa Programador n) = Pessoa Coordenador n
promover (Pessoa Coordenador n) = Pessoa Gerente n
promover (Pessoa _ n) = Pessoa Gerente n
-- 3.1) Crie o tipo Pergunta com os values constructors Sim
-- ou Nao . Faça as funções seguintes, determinando seus tipos
-- explicitamente.
-- pergNum : recebe via parâmetro uma Pergunta .
-- Retorna 0 para Nao e 1 para Sim .
-- listPergs : recebe via parâmetro uma lista de
-- Perguntas , e retorna 0 s e 1 s correspondentes aos
-- constructores contidos na lista.
-- and' : recebe duas Perguntas como parâmetro e
-- retorna a tabela verdade do and lógico, usando
-- Sim como verdadeiro e Nao como falso.
-- or' : idem ao anterior, porém deve ser usado o ou
-- lógico.
-- not' : idem aos anteriores, porém usando o not
-- lógico.
-- 3.2) Faça o tipo Temperatura que pode ter valores Celsius ,
-- Farenheit ou Kelvin . Implemente as funções:
-- converterCelsius : recebe um valor double e uma
-- temperatura, e faz a conversão para Celsius.
-- converterKelvin : recebe um valor double e uma
-- temperatura, e faz a conversão para Kelvin.
-- converterFarenheit : recebe um valor double e
-- uma temperatura, e faz a conversão para Farenheit.
-- 3.3) Implemente uma função que simule o vencedor de uma
-- partida de pedra, papel e tesoura usando tipos criados. Casos de
-- empate devem ser considerados em seu tipo.
-- 3.4) Faça uma função que retorne uma string, com todas as
-- vogais maiúsculas e minúsculas eliminadas de uma string passada
-- por parâmetro usando list compreenshion.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment