---
# System prepended metadata

title: Condição 2 | Fund. Lógica

---

# Condição 2 | Fund. Lógica
**Author:** Matheus Rafael Morato Rocha
**Turma:** InfoC
**Número:** 40

[TOC]


## Nível 1


Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a
especificação das situações a serem resolvidas:
▪ Realize a lógica para implementar uma Calculadora, a partir de dois valores e a
operação que deve ser realizada (soma, subtração, multiplicação, divisão ou
potência).
▪ Realize a lógica para implementar uma função que informe se uma pessoa está com
febre, febre alta, hiportemia ou normal.
▪ Realize a lógica para implementar uma função que a partir dos lucros e prejuízos de
uma empresa, informe se ela ficou positiva ou negativa no fim do mês. Caso ela fique
negativa, você não deve exibir o sinal de menos (-) na resposta.
“Muito bem, você está R$ XXX positivo”
“Poxa, você ficou R$ XXX negativo.”
▪ Realize a lógica para implementar uma função que arredone uma nota de meio em
meio. Se a nota for entre (a) .00 e .25 arredondar para 0.0, (b) entre .26 e .74
arredondar para 0.5, e (c) .75 e .99 arredondar para cima.
▪ Realize a lógica para implementar uma função que verifique se um aluno passou ou
está de recuperação, se a nota for maior que 5.
▪ Realize a lógica para implementar uma função que verifique se um aluno passou ou
está de recuperação, se a nota for maior que 5 e a quantidade de falta for menor que
25. Se ele ficar de recuperação retorne o motivo: “Recuperação por Falta”,
“Recuperação por Nota” ou “Recuperação por Nota e Falta”.
▪ Realize a lógica para implementar uma função que descubra o tipo de um triângulo:
Equilátero, Isósceles ou Escaleno.
▪ Realize a lógica para implementar uma função que retorne o Índice de Massa
Corporal (IMC) de uma pessoa: Abaixo do Peso, Peso Normal ou Sobrepeso, no
seguinte formato: “XXXX você está XXXX”

```csharp=
public class Calculo
{
    public double valor1 { get; set; }
    public double valor2 { get; set; }
    public string Operacao { get; set; }
}

public class Triangulo
{
    public double LadoA { get; set; }
    public double LadoB { get; set; }
    public double LadoC { get; set; }
}

public class Pessoa
{
    public string Nome { get; set; }
    public double Altura { get; set; }
    public double Peso { get; set; }
}

public class Notas 
{
    public double Nota1 { get; set; }
    public double Nota2 { get; set; }
    public double Nota3 { get; set; }
}

Calculo calcular = new Calculo();
calcular.valor1 = 10;
calcular.valor2 = 2;
calcular.Operacao = "Adição";

Notas escola = new Notas ();
escola.Nota1 = 5.76;
escola.Nota2 = 5.76;
escola.Nota3 = 5.76;
int faltas = 28;

Triangulo tri = new Triangulo();
tri.LadoA = 10;
tri.LadoB = 3;
tri.LadoC = 1;

Pessoa pessoa = new Pessoa();
pessoa.Nome = "Matheus";
pessoa.Altura = 1.75;
pessoa.Peso = 60;

double temperatura = 41;

double gastos = 1500;
double lucro = 1000;

double nota = 8.70;

TreinoFocadoA x = new TreinoFocadoA();
double b = x.Calculadora(calcular);
string c = x.Termometro(temperatura);
string d = x.LucroOuPrejuizo(gastos,lucro); 
string e = x.Passou(escola);
string f = x.Passou(escola,faltas);
string g = x.TipoTriangulo(tri);
string h = x.IMC(pessoa);
double i = x.ArredondarMeioEmMeio(nota);


Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);
Console.WriteLine(i);
Console.WriteLine(e);
Console.WriteLine(f);
Console.WriteLine(g);
Console.WriteLine(h);

public class TreinoFocadoA
{
    public double Calculadora (Calculo a)
    {
        double x = 0;
        if (a.Operacao == "Adição")
        {
            x = a.valor1 + a.valor2;
        }
        if (a.Operacao == "Divisão")
        {
            x = a.valor1 / a.valor2;
        }
        if (a.Operacao == "Multiplicação")
        {
            x = a.valor1 * a.valor2;
        }
        if (a.Operacao == "Substração")
        {
            x = a.valor1 / a.valor2;
        }
        if (a.Operacao == "Potencia")
        {
            x = Math.Pow(a.valor1,a.valor2);
        }
        return x;
    }
    public string Termometro (double grau)
    {
        string z = "";
        if((grau > 39.6) && (grau >= 41))
        {
            z = $"Você esta com febre alta, sua temperatura é: {grau}";
        }
        if ((grau > 35.6) && (grau < 37.5))
        {
            z = $"Você não esta com febre,sua temperatura é: {grau}";
        }
        if ((grau > 37.6) && (grau < 39.5))
        {
            z = $"Você esta com febre,sua temperatura é: {grau}";
        }
        if (grau > 41)
        {
            z = $"Você esta com Hipertemia,sua temperatura é: {grau}";
        }
        return z;
    }
    public string LucroOuPrejuizo (double gastos,double lucro)
    {
        double a = lucro - gastos;
        string x = "";
        if (a >= 0)
        {
            x = $"Muito bem, você está R$ {a} positivo";
        } else {
            x = $"Poxa, você ficou R$ {Math.Abs(a)} negativo.";
        }

        return x;
    }
    public double ArredondarMeioEmMeio (double nota)
    {   
        double a = nota - Math.Truncate(nota);
        double x = Math.Round(a,2);
        double b = 0;
        if (a <= 0.25)
        {
            b = Math.Floor(nota);
        }
        if ((x >= 0.26) && (x <= 0.75))
        {
            b = Math.Truncate(nota) + 0.5;
        }
        else
        {
            b = Math.Ceiling(nota);
        }

        return b;
    }
    public string Passou (Notas nota)
    {
        double Total = (nota.Nota1 + nota.Nota2 + nota.Nota3) / 3;
        string a = "";
        if (Total >= 5)
        {
            a = $"Passou!";
        } else {
            a = $"Recuperação!";
        }

        return a;
    }
    public string Passou (Notas nota,int falta)
    {
        double Total = (nota.Nota1 + nota.Nota2 + nota.Nota3) / 3;
        string a = "";
        if ((Total >= 5) && (falta <= 25))
        {
            a = $"Passou!";
        }
        if ((Total < 5 ) && (falta > 25))
        {
            a = $"Recuperação por Nota e Falta!";
        }
        if ((Total >= 5) && (falta > 25))
        {
            a = $"Recuperação por Falta!";
        }
        if ((Total < 5) && (falta <= 25))
        {
            a = $"Recuperação por Nota!";
        }

        return a;
    }
    public string TipoTriangulo(Triangulo tri)
    {
        string x = "";
        if ((tri.LadoA == tri.LadoB) && (tri.LadoC == tri.LadoA) && (tri.LadoC == tri.LadoB))
        {
            x = $"Seu triangulo e um: Equilátero";
        }
        else if ((tri.LadoA != tri.LadoB) && (tri.LadoC != tri.LadoA) && (tri.LadoC != tri.LadoB))
        {
             x = $"Seu triangulo e um: Escaleno";
        }
        else
        {
            x = $"Seu triangulo e um: Isósceles";
        }

        return x;
    }
    public string IMC(Pessoa pessoa)
    {
        double imc = pessoa.Peso / (pessoa.Altura * pessoa.Altura) ;
        string x = "";
        if ((imc > 18.5) && (imc < 24.9))
        {
            x = $"{pessoa.Nome} Você esta Normal";
        }
        if (imc < 18.5)
        {
            x = $"{pessoa.Nome} Você esta Abaixo do Peso";
        }
        if ((imc > 25) && (imc < 29.9))
        {
            x = $"{pessoa.Nome} Você esta Acima do Peso";
        }
        if (imc > 30)
        {
            x = $"{pessoa.Nome} Você esta Sobrepeso";
        }

        return x;
    }
}

// 12
// Você esta com febre alta, sua temperatura é: 41
// Poxa, você ficou R$ 500 negativo.
// 8,5
// Passou!
// Recuperação por Falta!
// triangulo e um: Escaleno
//Matheus Você esta Normal

```
## Nível 2

Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a
especificação das situações a serem resolvidas:
▪ Realize a lógica para implementar uma função que descubra se uma cor é uma cor
primária.
▪ Realize a lógica para implementar uma função que retorne a cor resultante da
combinação de duas cores primárias. Você deve realizar todas combinações.
▪ Realize a lógica para implementar uma função que retorne o primeiro nome de uma
pessoa a partir de um nome completo, no entando, se a função receber apenas o
primeiro nome não deve resultar em um erro, mas no mesmo primeiro nome.
▪ Realize a lógica para implementar uma função que a partir de uma peça de dominó e
verifique se a peça é um dobre.
▪ Realize a lógica para implementar uma função que a partir de duas peças de dominó,
verifique se a primeira peça “encaixa” na segunda, ou seja, se seria um jogada válida.
▪ Realize a lógica para implementar uma função que mostre ao usuário uma mensagem de
recuperação de senha a partir de um e-mail e senha. A mensagem deve ser no formato:
“Você receberá um e-mail do XXX para resetar a senha. Um código também foi enviado
para o número YYY.” Sendo XXX o domínio (ex: GMAIL) e YYY apenas o final do telefone
(ex: xxxx-5764)
▪ Realize a lógica para implementar uma função que inicialize um controlador de
semáforo. O semáforo deve iniciar em vermelho aceso e o resto apagado.
▪ Realize a lógica para implementar uma função que a partir de um estado de um
semáforo, avance para o próximo estado, ou seja, de vermelho para verde, de verde
para amarelo e amarelo para vermelho.


```csharp=
using System;

public class PecaDomino
{
    public double LadoA { get; set; }
    public double LadoB { get; set; }
}
public class Semaforo
{
    public bool LuzVermelhaAcesa { get; set; }
    public bool LuzAmarelaAcesa { get; set; }
    public bool LuzVerdeAcesa { get; set; }
}

public class Recuperacao
{
    public string Email;
    public string Telefone;
}

string nome = "Matheus Rafael";
string cor1 = "Azul";
string cor2 = "Amarelo";

PecaDomino lados1 = new  PecaDomino();
lados1.LadoA = 6;
lados1.LadoB = 6; 

PecaDomino lados2 = new  PecaDomino();
lados2.LadoA = 6;
lados2.LadoB = 5; 

Semaforo s = new Semaforo();
s.LuzVerdeAcesa = true;
s.LuzVermelhaAcesa = false;
s.LuzAmarelaAcesa = false;

Recuperacao EmailRec = new Recuperacao();
EmailRec.Email = "matheuszap@gmail.com";
EmailRec.Telefone = "5978-7210";

TreinoFocadoB treino = new TreinoFocadoB();
bool CorTeste1 = treino.CorPrimaria(cor1);
string CorTeste2 = treino.CombinacaoCorPrimaria(cor1,cor2);
string Nome = treino.PrimeiroNome(nome);
bool Domino = treino.DobreDomino(lados1);
bool Domino2 = treino.JogadaValida(lados1,lados2);
string Email1 = treino.RecuperacaoSenha(EmailRec);
Semaforo semaforo2 = treino.IniciarSemaforo();


Console.WriteLine(CorTeste1);
Console.WriteLine(CorTeste2);
Console.WriteLine(Nome);
Console.WriteLine(Domino);
Console.WriteLine(Domino2);
Console.WriteLine(Email1);
Console.WriteLine($"Vermelho: {s.LuzVermelhaAcesa} - Amarelo : {s.LuzAmarelaAcesa} - Verde: {s.LuzVerdeAcesa}");

public class TreinoFocadoB
{
    public bool CorPrimaria (string cor)
    {
        bool Resultado = true;
        if ((cor == "Amarelo") || (cor == "Azul") || (cor == "Vermelho"))
        {
            Resultado = true;
        }
        else {
            Resultado = false;
        }

        return Resultado;
    }

    public string CombinacaoCorPrimaria (string cor1,string cor2)
    {
        string Mensagem = "";
        if ((cor1 == "Amarelo") && (cor2 == "Vermelho") || (cor1 == "Vermelho") && (cor2 == "Amarelo"))
        {
            Mensagem = "Laranja";
        }
        else if ((cor1 == "Amarelo") && (cor2 == "Azul") || (cor1 == "Azul") && (cor2 == "Amarelo"))
        {
            Mensagem = "Verde";
        }
        else if ((cor1 == "Vermelho") && (cor2 == "Azul") || (cor1 =="Azul") && (cor2 == "Vermelho"))
        {
            Mensagem = "Roxo";
        } else {
            Mensagem = "Nenhuma cor foi encontrada";
        }

        return Mensagem;
    }

    public string PrimeiroNome (string nome)
    {
        bool verificar = nome.Contains(" ");
        string NomeFinal = "oi";
        int numero = 0;

        if (verificar == true)
        {
           numero = nome.IndexOf(" ");
           NomeFinal = nome.Substring(0,numero);
        }
        else {
            NomeFinal = nome;
        }

        return NomeFinal;
    }


    public bool DobreDomino (PecaDomino peca)
    {
        bool Resultado = true;
        if (peca.LadoA == peca.LadoB)
        {
            Resultado = true;
        } else {
            Resultado = false;
        }

        return Resultado;
    }

    public bool JogadaValida(PecaDomino peca1, PecaDomino peca2)
    {
        bool Resultado = true;
        if((peca1.LadoA == peca2.LadoA) || (peca1.LadoB == peca2.LadoB) || (peca1.LadoB == peca2.LadoA))
        {
            Resultado = true;
        } else {
            Resultado = false;
        }
    
        return Resultado;
    }

    public string RecuperacaoSenha(Recuperacao rec)
    {
        int corte = rec.Telefone.IndexOf("-");
        string corte2 = rec.Telefone.Substring(corte +1);
        if (rec.Email.Contains("@"))
        {
           string corte3 = rec.Email.Substring(rec.Email.LastIndexOf("@"));
           string corte4 = corte3.Substring(0,corte3.IndexOf("."));
           string CorteFinal = corte4.Replace("@","");
           return $"Você receberá um e-mail do {CorteFinal} para resetar a senha. Um código também foi enviado para o número {corte2}.";
        } else {
            return $"Algo esta errado no seu email ou telefone, tente rescrevelos";
        }
    }

    public Semaforo IniciarSemaforo()
    {
        Semaforo s = new Semaforo();
        s.LuzVerdeAcesa = true;
        s.LuzVermelhaAcesa = false;
        s.LuzAmarelaAcesa = false;

        return s;
    }

    public Semaforo ProximoSinal (Semaforo s)
    {
        if (s.LuzVermelhaAcesa)
        {
           s.LuzVermelhaAcesa = true;
           s.LuzAmarelaAcesa = false;
           s.LuzVerdeAcesa = false;
        }

        else if (s.LuzAmarelaAcesa)
        {
           s.LuzVermelhaAcesa = false;
           s.LuzAmarelaAcesa = true;
           s.LuzVerdeAcesa = false;
        }

        else if (s.LuzVerdeAcesa)
        {
           s.LuzVermelhaAcesa = false;
           s.LuzAmarelaAcesa = false;
           s.LuzVerdeAcesa = true;
        }

        return s;

       
    }
} 
// True
// Verde
// Matheus
// True
// True
//Você receberá um e-mail do gmail para resetar a senha. Um código também foi enviado para o número 7210.
// Vermelho: False - Amarelo : False - Verde: True


```
## Nível 3

Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a
especificação das situações a serem resolvidas:
▪ Realize a lógica para implementar uma função que descubra o trimestre a partir de uma
data.
▪ Realize a lógica para implementar uma função que retorne o nome do mês por extenso.
▪ Realize a lógica para implementar uma função que retorne o período do dia a partir de
uma data. Os períodos são: Manhã, Tarde, Noite, Madrugada.
▪ Realize a lógica para implementar uma função que retorne quantos dias de vida uma
pessoa possui a partir da data de seu nascimento.
▪ Realize a lógica para implementar uma função que verifique qual o signo de uma pessoa
a partir de seu nascimento. A função deve considerar todos os signos.
▪ Realize a lógica para implementar uma função que escreva uma data por extenso no
seguinte formato:
“XXX você nasceu há XXX dias, em uma XXX do dia XXX de XXX (Xo trimestre) de XXX.
Seu signo é XXX.”
Ex.: “Bruno você nasceu há 11680 dias, em uma noite do dia 22 de Outubro (4o
trimestre) de 1989. Seu signo é Libra.”


```csharp=
using System;

public class Pessoa
{
    public string Nome { get; set; }
    public DateTime Nascimento { get; set; }
    public string cidade { get; set; }
}

public class TreinoFocadoC
{
    public int Trimestre(DateTime data)
    {
        int numero = 0;
        if (data.Month == 1 || data.Month <= 3)
        {
            numero = 1;
        }
        else if (data.Month == 4 || data.Month < 6)
        {
            numero = 2;
        }
        else if (data.Month == 7 || data.Month < 9)
        {
            numero = 3;
        }
        else if (data.Month == 10 || data.Month < 12)
        {
            numero = 4;
        }

        return numero;
    }

    public string Mes(int mes)
    {
        string extenso = "";
        if (mes == 1)
        {
            extenso = "Janeiro";
        }
        else if (mes == 2)
        {
            extenso = "Fevereiro";
        }
        else if (mes == 3)
        {
            extenso = "Março";
        }
        else if (mes == 4)
        {
            extenso = "Abril";
        }
        else if (mes == 5)
        {
            extenso = "Maio";
        }
        else if (mes == 6)
        {
            extenso = "Junho";
        }
        else if (mes == 7)
        {
            extenso = "Julho";
        }
        else if (mes == 8)
        {
            extenso = "Agosto";
        }
        else if (mes == 9)
        {
            extenso = "Setembro";
        }
        else if (mes == 10)
        {
            extenso = "Outubro";
        }
        else if (mes == 11)
        {
            extenso = "Novvembro";
        }
        else if (mes == 12)
        {
            extenso = "Dezembro";
        }

        return extenso;
    }

    public string PeriodoDia(DateTime data)
    {
        string HoraDoDia = "";
        if (data.Hour >= 6 && data.Hour < 12)
        {
            HoraDoDia = "Manhã";
        }
        else if (data.Hour >= 12 && data.Hour < 18)
        {
            HoraDoDia = "Tarde";
        }
        else if (data.Hour >= 18 && data.Hour < 24)
        {
            HoraDoDia = "Noite";
        }
        else if (data.Hour >= 24 && data.Hour < 6)
        {
            HoraDoDia = "Madrugada";
        }

        return HoraDoDia;
    }

    public double DiasVida(DateTime Nascimento)
    {
        TimeSpan dias = DateTime.Now - Nascimento;
        double Total = dias.TotalDays;
        double Total2 = Math.Truncate(Total);

        return Total2;
    }

    public string QualSigno(DateTime nascimento)
    {
        string Signo = "";

        if (nascimento.Day >=21 && nascimento.Month == 1  || nascimento.Day <= 18 && nascimento.Month == 2)
        {
            Signo = "Aquário";
        }
        else if (nascimento.Day >= 19 && nascimento.Month == 2  || nascimento.Day <= 20 && nascimento.Month == 3)
        {
            Signo = "Peixes";
        }
        else if (nascimento.Day >=21 && nascimento.Month == 3 || nascimento.Day <= 20 && nascimento.Month == 4)
        {
            Signo = "Áries";
        }
        else if (nascimento.Day >=21 && nascimento.Month == 4  || nascimento.Day <= 20 && nascimento.Month == 5)
        {
            Signo = "Touro";
        }
        else if (nascimento.Day >=21 && nascimento.Month == 5  || nascimento.Day <= 20 && nascimento.Month == 6)
        {
            Signo = "Gêmeos";
        }
        else if (nascimento.Day >=21 && nascimento.Month == 6  || nascimento.Day <= 22 && nascimento.Month == 7)
        {
            Signo = "Câncer";
        }
        else if (nascimento.Day >=23 && nascimento.Month == 7  || nascimento.Day <= 22 && nascimento.Month == 8)
        {
            Signo =  "Leão";
        }
        else if (nascimento.Day >=23 && nascimento.Month == 8  || nascimento.Day <= 22 && nascimento.Month == 9)
        {
            Signo =  "Virgem";
        }
        else if (nascimento.Day >=23 && nascimento.Month == 9  || nascimento.Day <= 22 && nascimento.Month == 10)
        {
            Signo = "Libra";
        }
        else if (nascimento.Day >=23 && nascimento.Month == 10  || nascimento.Day <= 21 && nascimento.Month == 11)
        {
            Signo = "Escorpião";
        }
        else if (nascimento.Day >=22 && nascimento.Month == 11  || nascimento.Day <= 21 && nascimento.Month == 12)
        {
            Signo =  "Sagitário";
        }
        else if (nascimento.Day >=22 && nascimento.Month == 12  || nascimento.Day <= 20 && nascimento.Month == 1)
        {
            Signo = "Capricórnio";
        }
        else 
        {
            Signo = "Se chegou aqui, seu signo é Alienígina";
        }

        return Signo;
    }

    public string DataPorExtenso(Pessoa pessoa)
    {
        string MesExtenso = Mes(pessoa.Nascimento.Month);
        int tri = Trimestre(pessoa.Nascimento);
        string HoraDoDia = PeriodoDia(pessoa.Nascimento);
        double DiasDeLife = DiasVida(pessoa.Nascimento);
        string SignoGay = QualSigno(pessoa.Nascimento);

        return $"{pessoa.Nome} você nasceu há {DiasDeLife} dias, em uma {HoraDoDia} do dia {pessoa.Nascimento.Day} de {MesExtenso} ({tri}o trimestre) de {pessoa.Nascimento.Year}. Seu signo é {SignoGay}.";
    }

}


Pessoa eu = new Pessoa();
eu.Nome = "Matheus Rafael";
eu.Nascimento = new DateTime (2004, 09, 10, 13, 30, 0);
eu.cidade = "São Paulo";

DateTime data = new DateTime (2004,11,05);
DateTime data2 = new DateTime(2021, 4, 10, 6, 30, 0);
DateTime Dias = new DateTime(2004,09,10);
int mes = 6;

TreinoFocadoC a = new TreinoFocadoC();
int tri = a.Trimestre(data);
string MesExtenso = a.Mes(mes);
string HoraDoDia = a.PeriodoDia(data2);
double DiasDeLife = a.DiasVida(Dias);
string SignoGay = a.QualSigno(Dias);
string DataExtenso = a.DataPorExtenso(eu);

Console.WriteLine(tri);
Console.WriteLine(MesExtenso);
Console.WriteLine(HoraDoDia);
Console.WriteLine(DiasDeLife);
Console.WriteLine(SignoGay);
Console.WriteLine(DataExtenso);


// 4
// Junho
// Manhã
// 6106
// Virgem

// Matheus Rafael você nasceu há 6105 dias, em uma Tarde do dia 10 de Setembro (4o trimestre) de 2004. Seu signo é Virgem.


```