# 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);
}
}
```