# 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
```