---
# System prepended metadata

title: SESSION C#

---

# SESSION C#

## EXERCÍCIO 1

```csharp=
using System;

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


public class Trigonometria
{
	
	public bool RetanguloIguais(Retangulo ret1, Retangulo ret2)
	{
		return AreaRetangulo(ret1.Altura, ret1.Base) == AreaRetangulo(ret2.Altura, ret2.Base);
	}
	
	private double AreaRetangulo(double a, double b)
	{
		return a * b;
	}

	public double PerimetroRetangulo(double a, double b)
	{
		return (a * 2) + (b *2);
	}
}



Trigonometria tri = new Trigonometria();

double x = tri.PerimetroRetangulo(10, 5);
Console.WriteLine(x);


Retangulo ret1 = new Retangulo();
ret1.Altura = 10;
ret1.Base = 5;


Retangulo ret2 = new Retangulo();
ret2.Altura = 25;
ret2.Base = 2;


bool x2 = tri.RetanguloIguais(ret1, ret2);
Console.WriteLine(x2);

double x3 = tri.PerimetroRetangulo (10,5);
Console.WriteLine (x3);
```
## EXERCÍCIO 2

```csharp=
using System;
					
public class Triangulo
{
	public double Base;
	public double Altura;
}
public class Retangulo
{
	public double Base;
	public double Altura;
}
public class Paralelogramo
{
	public double Base;
	public double Altura;
}

public class AreaFormas {

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

public double AreaTriangulo(Triangulo tri1)
{
	return tri1.Base * tri1.Altura / 2;
}
	
	public double AreaParalelogramo(Paralelogramo p1)
{
	return p1.Base * p1.Altura;
}
	
}
AreaFormas af = new AreaFormas();

Triangulo x = new Triangulo ();
x.Base = 10;
x.Altura = 15;

double x1 = af.AreaTriangulo (x);
Console.WriteLine( "A área do triangulo é de: " + x1);

Retangulo xx = new Retangulo();
xx.Base = 10;
xx.Altura = 15;

double x2 = af.AreaRetangulo (xx);
Console.WriteLine ( "A área do retângulo é de: " + x2);

Paralelogramo xxx = new Paralelogramo ();
xxx.Base = 10;
xxx.Altura = 15;

double x3 = af.AreaParalelogramo (xxx);
Console.WriteLine ("A área do paralelogramo é de: " + x3);
```

## EXERCÍCIO 3

```csharp=
using System;

public class datas
{
		public DateTime calendario( DateTime niver, string Nome){
      
			DateTime data = DateTime.Today;	
			
			//DateTime com o primeiro dia do mês
            DateTime primeiroDiaDoMes = new DateTime(data.Year, data.Month, 1);
       
			return primeiroDiaDoMes;
			
			//DateTime com o último dia do mês
            DateTime ultimoDiaDoMes = new DateTime(data.Year, data.Month,  DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month));
			return ultimoDiaDoMes;
            
		}
	//Verifique se o mês possui 31 dias a partir de uma data.
	public bool ultimoDia(int dia, int mes, int ano)
{
    int ultimoDiaMes = DateTime.DaysInMonth(ano, mes);
		
    bool x = (dia > ultimoDiaMes || dia < 1);
		
		return x;
}
	//Verifique se uma data cai em uma sexta-feira 13
    
	
	
	//Retorne quantas semanas faltam para chegar no aniversário de uma pessoa a partir de seu nome e data de aniversário abstraído em um tipo composto.

     
	//Retorne se uma pessoa é de Libra a partir do dia em que nasceu abstraído em um tipo composto.
	
	public bool libra (DateTime nasc)
	{
bool alt1 =nasc.Month == 9 && nasc.Day > 22;
bool alt2 =nasc.Month == 10 && nasc.Day < 23;

return alt1 == true | alt2 == true;

	}
    }
```
## EXERCÍCIO 4

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

    public string ValidarCadastro (string email, string senha)
    {
        bool v1 = email.Length >= 8;
        bool v2 = email.Contains("!") || email.Contains("@") || email.Contains("#") || email.Contains("%");
        bool v3 = email.Contains("a") || email.Contains("e") || email.Contains("i") || email.Contains("o") || email.Contains("u");
        bool v4 = email.Contains("@");

        bool v5 = email.Contains("@")
                   &&
                  email.Substring(0, email.IndexOf("@")).Length > 2 
                   && 
                  email.Substring(email.IndexOf("@")).Length > 2;
string m = "";
        if (v1 && v2 && v3 && v4 && v5 == true)
		{ return m ="permitido";}
		else { return m= "negado";}
    }
    

    public string ValidarDominio (string dominio)
    {
        bool v1 = dominio.EndsWith(".com.br");
        
        bool v2 = 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 v3 = dominio.Substring(0, dominio.IndexOf(".com.br")).Length >= 5;
string m = "";
        if ( v1 && v2 && v3 == true )
		{return m= "Domínio correto";} else { return m= "Domínio incorreto";}
    }
}



RegistroBRValidator registroBR = new RegistroBRValidator();
string x = registroBR.ValidarCadastro("bruno@gmail.com", "1234");
Console.WriteLine("Cadastro " + x);

string xx = registroBR.ValidarDominio ( "tamaluco.com.br");
Console.WriteLine( xx);
```

## EXERCÍCIO 5
```csharp=
using System;
					
public class Retangulo
{
	public double Base {get; set;}
	public double Altura {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)
	{
		double calc = AreaRetangulo (ret1.Base, ret1.Altura);
		double calc2 = AreaRetangulo (ret2.Base, ret2.Altura);
		bool comparar = calc == calc2;
		return comparar;
	}
	public double AreaRetangulo (double a, double b)
	{
		return a * b;
	}
	
	public double VolumeCilindro (double r, double a)
	{
		double calcvolume = 3.14 * Math.Pow (r, 2) * a;
		return calcvolume;
	}
	
	public bool TransferenciaPossivel (Cilindro c1, Cilindro c2)
	{
		double conta1 = VolumeCilindro (c1.Raio, c1.Altura);
		double conta2 = VolumeCilindro (c2.Raio, c2.Altura);
		bool comparar = conta1 <= conta2;
		return comparar;
	}
		
}

Retangulo x = new Retangulo();
x.Base = 10;
x.Altura = 15;

Retangulo xx = new Retangulo();
xx.Base = 10;
xx.Altura = 13;

Cilindro y = new Cilindro();
y.Raio = 10;
y.Altura = 12;

Cilindro yy = new Cilindro();
yy.Raio = 14;
yy.Altura = 20;

Trigonometria tri = new Trigonometria ();

bool z = tri.TransferenciaPossivel (y, yy);
Console.WriteLine(z);
```

## 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 feminino, Compra masculino, Compra infantil)
    {
        return TotalMasculino(masculino) + TotalInfantil(infantil) + TotalFeminino(feminino) + TotalCalcados(feminino.qtdCalcados, masculino.qtdCalcados, infantil.qtdCalcados);
    }
    
    private double TotalMasculino (Compra pecaMasculina)
    {
        return (pecaMasculina.qtdBlusa * 30) + (pecaMasculina.qtdCamiseta * 30) + (pecaMasculina.qtdCalca * 30);
    }

    private double TotalInfantil (Compra pecaInfantil)
    {
        return (pecaInfantil.qtdBlusa * 20) + (pecaInfantil.qtdCalca * 20) + (pecaInfantil.qtdCamiseta * 20);
    }

    private double TotalFeminino (Compra pecaFeminina)
    {
        return (pecaFeminina.qtdBlusa * 40) + (pecaFeminina.qtdCalca * 40) + (pecaFeminina.qtdCamiseta * 40);
         
    }

    private double TotalCalcados (int qtdCalcadoFeminino, int qtdCalcadoMasculino, int qtdCalcadoInfantil)
    {
        return ((qtdCalcadoFeminino * 35) + (qtdCalcadoInfantil * 35) + (qtdCalcadoMasculino * 35));
    }
}

Compra compraMasculina = new Compra ();
compraMasculina.qtdBlusa = 3;
compraMasculina.qtdCalca = 2;
compraMasculina.qtdCalcados = 2;
compraMasculina.qtdCamiseta = 4;

Compra compraFeminina = new Compra ();
compraFeminina.qtdBlusa = 2;
compraFeminina.qtdCalca = 2;
compraFeminina.qtdCalcados = 2;
compraFeminina.qtdCamiseta = 2;

Compra compraInfantil = new Compra ();
compraInfantil.qtdBlusa = 2;
compraInfantil.qtdCalcados = 2;
compraInfantil.qtdCalca = 2;
compraInfantil.qtdCamiseta = 2;

Brecho compra = new Brecho ();
double totalFinal = compra.CalcularTotal(compraFeminina, compraMasculina, compraInfantil);
Console.WriteLine($"O total da sua compra foi: R$ {totalFinal}");
```

## EXERCÍCIO 7
```csharp=
using System;

class MainClass {
  
  public static void Main (string[] args) {
    
    Console.WriteLine ("Exercício 7 | Abstração de Funções");

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

    LojaMoveis loja = new LojaMoveis();
    Nota n = loja.CalcularCompra(p, cupom);

    Console.WriteLine("Valor final é: " + n.ValorFinal);
    Console.WriteLine("Nota Fiscal é: " + n.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 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);
    }
    }
```