---
# System prepended metadata

title: 'Session three: It''s always time to restart | Fundamentos da Lógica'

---

# Session three: It's always time to restart | Fundamentos da Lógica
**Autor**: Vitório Trindade Santana
**Turma**: Informática C
**Número**: 50

[toc]

## Exercício 1 


```csharp=
public class Trigonometria 
{
  	public int AreaRetangulo (int altura, int basee)
    {
	  	return altura * basee;
	}
	
	public int PerimetroRetangulo (int altura, int basee)
	{
		return (altura * 2) + (basee * 2);
	}
	
	public bool RetangulosIguais (int a1, int b1, int a2, int b2)
	{
		int r1 = AreaRetangulo (a1, b1);
		int r2 = AreaRetangulo (a2, b2);
		bool s = r1 == r2;
		return s;
	}
}


Trigonometria trig = new Trigonometria ();

int x1 = trig.AreaRetangulo(8, 5);
int x2 = trig.PerimetroRetangulo(7, 4);
bool x3 = trig.RetangulosIguais(9, 4, 12, 3);
Console.WriteLine("A área do retângulo é :" + x1);
Console.WriteLine("O perímetro do retângulo é :" + x2);
Console.WriteLine("Os retângulos possuem áreas iguais? " + x3);

// A área do retângulo é :40
//O perímetro do retângulo é :22
//Os retângulos possuem áreas iguais? True
```

## Exercício 2

```csharp=
public class Forma
{
	public double Base { get;set; }
	public double Altura { get;set; }
}

public class Trigonometria 
{
	public double AreaRetangulo (Forma ret)
	{
		double area = ret.Base * ret.Altura;
		return area;
	}
	
	public double AreaTriangulo (Forma tri)
	{
		double area = (tri.Base * tri.Altura) / 2;
		return area;
	}
	
	public double AreaParalelogramo (Forma ret)
	{
		double area = ret.Base * ret.Altura;
		return area;
	}
}

Forma ret = new Forma ();
ret.Altura = 9;
ret.Base = 6;

Forma tria = new Forma ();
tria.Altura = 7;
tria.Base = 4;

Forma par = new Forma ();
par.Altura = 10;
par.Base = 6;

Trigonometria tri = new Trigonometria ();

double x1 = tri.AreaRetangulo(ret);
double x2 = tri.AreaTriangulo(tria);
double x3 = tri.AreaParalelogramo(par);

Console.WriteLine("A área do retângulo é: " + x1);
Console.WriteLine("A área do triângulo é: " + x2);
Console.WriteLine("A área do paralelogramo é: " + x3);

//A área do retângulo é: 54
//A área do triângulo é: 14
//A área do paralelogramo é: 60

```

## Exercício 3
```csharp=
public class Pessoa
{
	public string Nome { get;set; }
	public DateTime Niver { get;set; }
}

public class Calendario
{
	public DateTime PrimeiroDia (DateTime data)
	{
		 return data.AddDays(1 - data.Day);
	}
	
	public DateTime UltimoDia (DateTime data)
	{
	    DateTime a = new DateTime(data.Year, data.Month, 1);
		DateTime b = a.AddMonths(1);
		DateTime c = b.AddDays(-1);
	    return c;
	}
	
	public bool Possui31Dias (DateTime data)
	{
		DateTime a = new DateTime(data.Year, data.Month, 1);
		DateTime b = a.AddMonths(1);
		DateTime c = b.AddDays(-1);
		int d = c.Day;
		bool e = d == 31;
		return e;
	}
	
	public bool SextaFeira13 (DateTime data)
	{
		bool a = data.Day == 13 && data.DayOfWeek == DayOfWeek.Friday;
		return a;
	}
	
	public string SemanasParaNiver (Pessoa pessoa)
	{
		DateTime dataNiver = new DateTime(pessoa.Niver.Year, pessoa.Niver.Month, pessoa.Niver.Day);
		DateTime hoje = DateTime.Now;
		TimeSpan dif = dataNiver - hoje;
		int semanas = dif.Days / 7;
		
		string mensagem = $"{pessoa.Nome}, faltam {semanas} semanas para seu niver.";
		return mensagem;
	}
	
	public bool SouDeLibra (Pessoa info)
	{
		bool opcao1 = info.Niver.Day >= 22 && info.Niver.Month == 9;
		bool opcao2 = info.Niver.Day <= 23 && info.Niver.Month == 10;
		bool conf = opcao1 == true || opcao2 == true;
		return conf;
	}
}

DateTime q1 = new DateTime(2021, 5, 9);
DateTime q2 = new DateTime(2021, 3, 9);
DateTime q3 = new DateTime (2021, 2, 10);
DateTime q4 = new DateTime(2020, 11, 13);

Pessoa q5 = new Pessoa ();
q5.Niver = new DateTime(2021, 12, 26);
q5.Nome = "Vitório Trindade Santana";

Pessoa q6 = new Pessoa ();
q6.Niver = new DateTime(2021, 10, 1);

Calendario cal = new Calendario ();

DateTime x1 = cal.PrimeiroDia(q1);
DateTime x2 = cal.UltimoDia(q2);
bool x3 = cal.Possui31Dias(q3);
bool x4 = cal.SextaFeira13(q4);
string x5 = cal.SemanasParaNiver(q5);
bool x6 = cal.SouDeLibra(q6);

Console.WriteLine("O primeiro dia do mês é: " + x1);
Console.WriteLine("O último de do mês é: " + x2);
Console.WriteLine("O mês possui 31 dias?: " + x3);
Console.WriteLine("O dia é uma sexta-feira 13?: " + x4);
Console.WriteLine(x5);
Console.WriteLine("Sou de libra?: " + x6);



//O primeiro dia do mês é: 5/1/2021 12:00:00 AM
//O último de do mês é: 3/31/2021 12:00:00 AM
//O mês possui 31 dias?: False
//O dia é uma sexta-feira 13?: True
//Vitório Trindade Santana, faltam 32 semanas para seu niver.
//Sou de libra?: True
```

## Exercício 4
```csharp=
public class RegistroBrValidator 
{
	public bool ValidarCadastro (string email, string senha)
	{
		bool a1  = email.Contains("@");
		bool a2 = email.Substring(0, email.IndexOf("@")).Length > 2 && email.Substring(email.IndexOf("@")).Length > 2;
		bool a3 = senha.Contains("a") || senha.Contains("e") || senha.Contains("i") || senha.Contains("o") || senha.Contains("u");
		bool a4 = senha.Contains("!") || senha.Contains("@") || senha.Contains("#") || senha.Contains("%") || senha.Contains("*") || senha.Contains("-");
		bool a5 = senha.Length >= 8;
		
		return a1 && a2 && a3 && a4 && a5;
	}
	
	public bool ValidarDominio (string dominio)
	{
		bool a1 = dominio.EndsWith(".com.br");
        bool a2 = dominio[0] != '1' && dominio[0] != '2' && dominio[0] != '3' && 
                  dominio[0] != '4' && dominio[0] != '5' && dominio[0] != '6' && 
                  dominio[0] != '7' && dominio[0] != '8' && dominio[0] != '9' && 
                  dominio[0] != '0';
		bool a3 = dominio.Length >= 5;

        return a1 && a2 && a3;
	}
}

RegistroBrValidator x1 = new RegistroBrValidator();

bool q1 = x1.ValidarCadastro("vitoriotrindade-2004@hotmail.com", "vito98*-");
bool q2 = x1.ValidarDominio("hotmail.com.br");
Console.WriteLine("O seu cadastro é: " + q1);
Console.WriteLine("O dominio do seu email é: " + q2);
//O seu cadastro é: True
//O dominio do seu email é: True
```

## Exercício 5
```csharp=
class MainClass {
  public static void Main (string[] args) {

    Retangulo ret1 = new Retangulo();
    ret1.Altura = 25;
    ret1.Base =3;

    Retangulo ret2 = new Retangulo();
    ret2.Altura = 12.5;
    ret2.Base =6;

    Cilindro ci1 = new Cilindro();
    ci1.Raio = 4;
    ci1.Altura = 9;

    Cilindro ci2 = new Cilindro();
    ci2.Raio = 3;
    ci2.Altura = 10;

    Trigonometria tri = new Trigonometria ();

    bool q1 = tri.AreasIguais (ret1, ret2);
    bool q2 = tri.TransferenciaPossivel (ci1, ci2);
    Console.WriteLine ("Os retângulos possuem uma área igual? " + q1 );
    Console.WriteLine("É possível a transferência? " + q2);
  }
}





public class Retangulo 
{
		public double Altura {get;set;}
    public double Base {get;set;}
}

public class Cilindro
{
		public double Raio {get;set;}
    public double Altura {get;set;}
}

public class Trigonometria 
{
  public bool AreasIguais (Retangulo ret1, Retangulo ret2)
  {
    bool x1 = AreaRetangulo (ret1) == AreaRetangulo (ret2);
    return x1;
  }

  public double AreaRetangulo (Retangulo ret1)
  {
    return ret1.Altura * ret1.Base;
  }


  public bool TransferenciaPossivel (Cilindro ci1, Cilindro ci2)
  {
    bool x2 = VolumeCilindro (ci1) == VolumeCilindro (ci2);
    return x2;
  }

  public double VolumeCilindro (Cilindro ci1)
  {
    return 3.14 * Math.Pow(ci1.Raio, 2) * ci1.Altura; 
  }
}
//Os retângulos possuem uma área igual? True
//É possível a transferência? False
```

## Exercício 6
```csharp=class MainClass {
  public static void Main (string[] args) {

    Compra masc = new Compra();
    masc.QtdCalca = 1;
    masc.QtdCamiseta = 4;
    masc.QtdBlusa = 2;
    masc.QtdCalcados = 1;

    Compra fem = new Compra();
    fem.QtdCalca = 3;
    fem.QtdCamiseta = 4;
    fem.QtdBlusa = 5;
    fem.QtdCalcados = 2;

    Compra infan = new Compra();
    infan.QtdCalca = 1;
    infan.QtdCamiseta = 4;
    infan.QtdBlusa = 2;
    infan.QtdCalcados = 0;

    Brecho bre = new Brecho ();

    double q1 = bre.CalcularTotal (masc, fem, infan);
    Console.WriteLine ("O valor total da compra foi: " + q1 );
  }
}





public class Compra 
{
		public int QtdCalca {get;set;}
    public int QtdCamiseta {get;set;}
    public int QtdBlusa {get;set;}
    public int QtdCalcados {get;set;}
}

public class Brecho 
{
  public double CalcularTotal (Compra masculino, Compra feminino,Compra infantil)
  {
    return TotalMasculino (masculino) + TotalFeminino(feminino) + TotalInfantil(infantil) + TotalCalcados (masculino.QtdCalcados, feminino.QtdCalcados, infantil.QtdCalcados);
  }

  private double TotalMasculino (Compra compra)
  {
    return (compra.QtdBlusa * 30) + (compra.QtdCalca * 30) + (compra.QtdCamiseta * 30); 
  }

  private double TotalFeminino (Compra compra)
  {
    return (compra.QtdBlusa * 40) + (compra.QtdCalca * 40) + (compra.QtdCamiseta * 40); 
  }

  private double TotalInfantil (Compra compra)
  {
    return (compra.QtdBlusa * 20) + (compra.QtdCalca * 20) + (compra.QtdCamiseta * 20); 
  }

  private double TotalCalcados (int qtdCalcadoMasculino, int qtdCalcadoFeminino, int qtdCalcadoInfantil)
  {
    return (qtdCalcadoMasculino * 35) + (qtdCalcadoFeminino * 35) + (qtdCalcadoInfantil * 35);
  }
}
//O valor total da compra foi: 935
```


## Exercício 7
```csharp=
class MainClass {
  public static void Main (string[] args) {

    Pedido p = new Pedido();
    p.Valor = 2300;
    p.AnosGarantia = 1;
    p.DistanciaEntregaKm = 12;
    p.Parcelas = 4;

    double cupom = 20;

    LojaMoveis lm = new LojaMoveis ();
    Nota nt = lm.CalcularCompra (p, cupom);
    Console.WriteLine("Valor final é: " + nt.ValorFinal);
    Console.WriteLine("Nota Fiscal é: " + nt.NotaFiscal);
  }
}





public class Pedido
{
		public double Valor {get;set;}
    public int AnosGarantia {get;set;}
    public int DistanciaEntregaKm {get;set;}
    public int Parcelas {get;set;}
}

public class Nota 
{
  public double ValorFinal {get;set;}
  public string NotaFiscal {get;set;}
}

public class LojaMoveis
{
  public Nota CalcularCompra (Pedido pedido, double cupom)
  {
    double valor = pedido.Valor - ValorDesconto(pedido.Valor, cupom) + ValorGarantia(pedido.Valor, pedido.AnosGarantia) +
    ValorFrete(pedido.DistanciaEntregaKm);
    double total = Math.Round(ValorJuros(valor, pedido.Parcelas), 2);
    Nota notafis = new Nota();
    notafis.ValorFinal = total;
    notafis.NotaFiscal = "NF" + DateTime.Now.ToString("yyyyMMddHHmmss");
    return notafis;
  }

  private double ValorDesconto (double valorCompra, double cupom)
  {
    return (valorCompra * cupom) / 100; 
  }

  private double ValorGarantia (double valorCompra, int anos)
  {
    return anos * ((15 * valorCompra) / 100); 
  }

  private double ValorFrete (int distancia)
  {
    return (distancia / 10 * 3); 
  }

  private double ValorJuros (double valor, int parcelas)
  {
    return valor * Math.Pow(1 + 0.03, parcelas);
  }
}
//Valor final é: 2462.61      
// Nota Fiscal é: NF20210517024050
```