# Session Three | Fund. de Lógica autor:Pedro Henrique Gomes De Oliveira Sardinha turma:InfoB número:41 [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 ```