---
# System prepended metadata

title: Session Three | Fund. de Lógica

---

# Session Three | Fund. de Lógica
autor: Erik Alexandre da Silva
turma: Info B
número: 10

[toc]

## Exercício 1
```csharp=
using System;
					
public class Trigonometria
{
	public int AreaRetangulo(int bs, int alt)
	{
		 return bs * alt;
	}
	
	public int PerimetroRet(int bs, int alt)
	{
		return bs * alt;
	}
	
	public bool RetangulosIguais(int bs1, int alt1, int bs2, int alt2)
	{
		int a = bs1 * alt1;
		int b = bs2 * alt2;
		bool c = a == b;
		return c;
	}
}
	
Trigonometria r = new Trigonometria();
	
int x = r.AreaRetangulo(5,5);
Console.WriteLine("AreaRetangulo: " + x);

int y = r.PerimetroRet(38,2);
Console.WriteLine("PerimetroRet: " + y);

bool z = r.RetangulosIguais(20,2,8,5);
Console.WriteLine("RetangulosIguais: " + z);
```

## Exercício 2
```csharp=
using System;
		
public class Forma
{
	public double Altura { get; set; }
	public double Base   { get; set; }
}

public class Trigonometria
{
	public double AreaRetangulo(Forma x)
	{
		 return x.Altura * x.Base;
	}
	
	public double AreaTriangulo(Forma x)
	{
		return x.Altura * x.Base / 2;
	}
	
	public double AreaParalelograma(Forma x)
	{
		return x.Altura * x.Base;
	}	
}
	
Forma r1 = new Forma();
r1.Altura = 10;
r1.Base = 20;

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

Forma r3 = new Forma();
r3.Altura = 3;
r3.Base = 5;

Trigonometria r = new Trigonometria();
double x = r.AreaRetangulo(r1);
Console.WriteLine("AreaRetangulo: " + x);

double y = r.AreaTriangulo(r2);
Console.WriteLine("AreaTriangulo: " + y);

double z = r.AreaParalelograma(r3);
Console.WriteLine("AreaParalelograma: " + z);
```

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

public class Calendario
{
	public DateTime PrimeiroDia(DateTime x)
	{
		DateTime a = x.AddDays (- (x.Day - 1));
		return a;
	}
	
	public DateTime UltimoDia(DateTime x)
	{
		DateTime a = x.AddMonths(1);
		DateTime b = a.AddDays(-x.Day);
		return b;
	}
	
	public bool Possui31Dias(DateTime x)
	{
		DateTime a = x.AddMonths(1);
		DateTime b = a.AddDays(-x.Day);
		bool c = b.Day == 31;
		return c;
	}	
	
	public bool SextaFeira13(DateTime x)
	{
		DateTime a = x.AddDays (-x.Day);
		DateTime b = a.AddDays(14);
		bool c = b.DayOfWeek == DayOfWeek.Friday;
		return c;
	}	
	
	public string SemanasParaNiver(Pessoa x)
	{
		TimeSpan a = x.Niver - DateTime.Now;
		double b = Math.Round(a.TotalDays / 7);
		return $"{x.Nome}, faltam {b} semanas para seu niver.";
	}	
	
	public bool SouDeLibra(Pessoa x)
	{
		bool a = x.Niver.Day >= 23 && x.Niver.Month == 9 || x.Niver.Day <= 22 && x.Niver.Month == 10;
		return a;
	}	
}
	
Pessoa r1 = new Pessoa();
r1.Nome = "Jerson Ferreira Das Costas Duidas";
r1.Niver = new DateTime (2021,06,08);

Calendario r = new Calendario();

DateTime res1 = r.PrimeiroDia(DateTime.Now);
Console.WriteLine("PrimeiroDia: " + res1);

DateTime res2 = r.UltimoDia(DateTime.Now);
Console.WriteLine("UltimoDia: " + res2);

bool res3 = r.Possui31Dias(DateTime.Now);
Console.WriteLine("Possui31Dias: " + res3);

bool res4 = r.SextaFeira13(DateTime.Now);
Console.WriteLine("SextaFeira13: " + res4);

string res5 = r.SemanasParaNiver(r1);
Console.WriteLine("SemanasParaNiver: " + res5);

bool res6 = r.SouDeLibra(r1);
Console.WriteLine("SouDeLibra: " + res6);
```
## Exercício 4

```csharp=
using System;
		
public class RegistroBRValidator
{

    public bool ValidarCadastro (string email, string senha)
    {
        bool a = email.Length >= 8;
        bool b = email.Contains("!") || email.Contains("@") || email.Contains("#") || email.Contains("%");
        bool c = email.Contains("a") || email.Contains("e") || email.Contains("i") || email.Contains("o") || email.Contains("u");
        bool d = email.Contains("@");
        bool e = email.Contains("@") && email.Substring(0, email.IndexOf("@")).Length > 2 && email.Substring(email.IndexOf("@")).Length > 2;
        return a && b && c && d && e;
    }
    
    public bool ValidarDominio (string dominio)
    {
        bool a = dominio.EndsWith(".com.br");
        bool b = 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 c = dominio.Substring(0, dominio.IndexOf(".com.br")).Length >= 5;
		return a && b && c;
    }
}

RegistroBRValidator r = new RegistroBRValidator();
bool x = r.ValidarCadastro("Williamgmail.com", "7612");
Console.WriteLine("Cadastro está ok? " + x);

```

## Exercício 5

```csharp=
using System;
	

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

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


public class Trigonometria
{
	public double AreaRetangulo(Retangulo x)
	{
		 return x.Altura * x.Base;
	}
	
	public bool AreasIguais(Retangulo x1, Retangulo x2)
	{
		 double ret1 = AreaRetangulo(x1); 
		 double ret2 = AreaRetangulo(x2);
		 return ret1 == ret2 ;
	}
	
    public double VlCilindro(Cilindro x)
	{     
		 return  3.14 * Math.Pow(x.Raio, 2) * x.Alturac ;
	}
	
	public bool TransferenciaPossivel (Cilindro x1, Cilindro x2 )
	{
		return VlCilindro(x1) >= VlCilindro(x2) ;	   
	}
}
	
Retangulo r1 = new Retangulo();
r1.Altura = 15;
r1.Base = 15;

Retangulo r2 = new Retangulo();
r2.Altura = 15;
r2.Base = 15;

Cilindro c1 = new Cilindro();
c1.Alturac = 8;
c1.Raio = 12;

Cilindro c2 = new Cilindro();
c2.Alturac = 6;
c2.Raio = 14;



Trigonometria r = new Trigonometria();
double x = r.AreaRetangulo(r1);
Console.WriteLine("AreaRetangulo: " + x);

bool y = r.AreasIguais(r1, r2);
Console.WriteLine("AreasIguais: " + y );

double z = r.VlCilindro(c1);
Console.WriteLine("VlCilindro: " + z);

bool p = r.TransferenciaPossivel(c1, c2);
Console.WriteLine("TransferenciaPossivel: " + p);
//AreaRetangulo: 225
//AreasIguais: True
//VlCilindro: 3617.28
//TransferenciaPossivel: False
```

## Exercício 6

```csharp=
using System;
		
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 x1, Compra x2, Compra x3)
	{
		   double a = TotalMasculino(x1);
		   double b = TotalFeminino(x2);
		   double c = TotalInfantil(x3);
		   double d = TotalCalcados(x1.QtdCalcados, x2.QtdCalcados, x3.QtdCalcados);
		   
		   return a + b + c + d;
	}
	
	private double TotalMasculino(Compra x)
	{
	       double a = x.QtdBlusa * 30;
		   double b = x.QtdCalca * 30;
		   double c = x.QtdCamiseta * 30;
		   return a + b + c;   
	}
	
	private double TotalFeminino(Compra x)
	{
		   double a = x.QtdBlusa * 40;
		   double b = x.QtdCalca * 40;
		   double c = x.QtdCamiseta * 40;
		   return a + b + c; 
	}	
	
	private double TotalInfantil(Compra x)
	{
	       double a = x.QtdBlusa * 20;
		   double b = x.QtdCalca * 20;
		   double c = x.QtdCamiseta * 20;
		   return a + b + c; 
	}
	
	private double TotalCalcados(int qtdCalcadoMasculino, int qtdCalcadoFeminino, int qtdCalcadoInfantil)
	{
	       double a = qtdCalcadoMasculino * 35;
		   double b = qtdCalcadoFeminino * 35;
		   double c = qtdCalcadoInfantil * 35;
		   return a + b + c;
	}
}
	
Compra c1 = new Compra();
c1.QtdCalca = 2;
c1.QtdCamiseta = 1;
c1.QtdBlusa = 2;
c1.QtdCalcados = 1;

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

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

Brecho r = new Brecho();
double x = r.CalcularTotal(c1, c2, c3);
Console.WriteLine("O valor da sua compra foi de: " + x);
//O valor da sua compra foi de: 850
```

## Exercício 7

```csharp=
using System;

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 valorFinal = ValorJuros( pedido.Valor - ValorDesconto(pedido.Valor, cupom) + ValorGarantia(pedido.Valor, pedido.AnosGarantia)
        + ValorFrete(pedido.DistanciaEntregaKm), pedido.Parcelas);
        valorFinal = Math.Round(valorFinal, 2);

        Nota notafiscal = new Nota();
        notafiscal.ValorFinal = valorFinal;
        notafiscal.NotaFiscal = "NF" + DateTime.Now.ToString("yyyyMMddHHmmss");

        return notafiscal;
    }

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

    private double ValorGarantia(double valorCompra, int anos)
    {
        return valorCompra * (15.0 / 100.0) * anos;
    }

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

    private double ValorJuros(double valorCompra, int parcelas)
    {
        return valorCompra * Math.Pow(1 + 0.03, parcelas);
    }
}

 Pedido r = new Pedido();
    r.Valor = 1000;
    r.AnosGarantia = 2;
    r.DistanciaEntregaKm = 50;
    r.Parcelas = 18; 
    double cupom = 10;

    LojaMoveis loja = new LojaMoveis();
    Nota x = loja.CalcularCompra(r, cupom);

    Console.WriteLine("Valor final é: " + x.ValorFinal);
    Console.WriteLine("Nota Fiscal é: " + x.NotaFiscal);

//Valor final é: 2068.46
//Nota Fiscal é: NF20210515001625
```
