# SESSION THREE — FUNDAMENTOS DA LÓGICA Author: Igor Lima Charles N°: 18 Grade: INFOA ## ABSTRAÇÃO DE FUNÇÕES ### EXERCÍCIO 1 ```csharp= using System; public class Retangulo { public double Basee {get; set;} public double Altura {get; set;} } public class Trigonometria { public double AreaRetangulo (double Basee, double Altura) { return Basee * Altura; } public double PerimetroRetangulo (double Basee, double Altura) { return Basee + Basee + Altura + Altura; } public bool AreasIguais(Retangulo ret1, Retangulo ret2) { return AreaRetangulo(ret1.Basee, ret1.Altura) == AreaRetangulo(ret2.Basee, ret2.Altura); } } Trigonometria termo = new Trigonometria (); double x = termo.AreaRetangulo(5, 5); Console.WriteLine("A área do retângulo é: " + x); double y = termo.PerimetroRetangulo(5, 5); Console.WriteLine("O perímetro do retângulo é:" + y); Retangulo ret1 = new Retangulo(); ret1.Basee = 6; ret1.Altura = 6; Retangulo ret2 = new Retangulo(); ret2.Altura = 10; ret2.Basee = 5; bool a = termo.AreasIguais(ret1, ret2); Console.WriteLine("Os dois retângulos são iguais? " + a) A área do retângulo é: 25 O perímetro do retângulo é:20 Os dois retângulos são iguais? False ``` ### EXERCÍCIO 2 ```csharp= using System; public class Forma { public double Base {get; set;} public double Altura {get; set;} } public class Trigonometria { public double AreaRetangulo (Forma retangulo) { return retangulo.Base * retangulo.Altura; } public double AreaTriangulo (Forma triangulo) { return (triangulo.Base * triangulo.Altura) / 2; } public double AreaPararelogramo (Forma retangulo) { return retangulo.Base * retangulo.Altura; } } Trigonometria Termo = new Trigonometria ( ); Forma f = new Forma (); f.Altura = 5; f.Base = 6; double x = Termo.AreaRetangulo(f); Console.WriteLine("A área do retângulo é: " + x); f.Altura = 6; f.Base = 6; double y = Termo.AreaTriangulo(f); Console.WriteLine("A área do triângulo é: " + y); f.Altura = 7; f.Base = 7; double z = Termo.AreaPararelogramo(f); Console.WriteLine("A área do paralelogramo é: " + z) A área do retângulo é: 30 A área do triângulo é: 18 A área do paralelogramo é: 49 ``` ### EXERCÍCIO 3 ```csharp= using System; public class Pessoa { public string Nome {get; set;} public DateTime Aniversario {get; set;} } public class Calendario { public DateTime PrimeiroDia (DateTime data) { return data.AddDays(1 - data.Day); } public DateTime UltimoDia (DateTime data) { return data.AddMonths(1).AddDays(- data.Day); } public bool Possui31Dias (DateTime data) { return UltimoDia(data).Day == 31; } public bool SextaFeira13 (DateTime data) { return data.DayOfWeek == DayOfWeek.Friday && data.Day == 13; } public string SemanasParaNiver (Pessoa pessoa) { DateTime a = DateTime.Now; DateTime b = new DateTime (a.Year, pessoa.Aniversario.Month, pessoa.Aniversario.Day); TimeSpan c = a - b; double d = c.TotalDays /7; double e = Math.Round(d); string f = $"pessoa.Nome faltam {e} semanas para o seu aniversário"; return f; } public bool SouDeLibra (Pessoa pessoa) { DateTime SignoDetestavel1 = new DateTime(pessoa.Aniversario.Year,09,23); DateTime SignoDetestavel2 = new DateTime(pessoa.Aniversario.Year,10,22); return pessoa.Aniversario >= SignoDetestavel1 && pessoa.Aniversario <= SignoDetestavel2; } } Pessoa p = new Pessoa (); p.Nome = "Igor Lima Charles"; p.Aniversario = new DateTime (2004, 08, 12); Calendario n = new Calendario ( ); DateTime a = n.PrimeiroDia(p.Aniversario); DateTime b = n.UltimoDia(p.Aniversario); bool c = n.Possui31Dias(p.Aniversario); bool d = n.SextaFeira13(p.Aniversario); string e = n.SemanasParaNiver(p); bool f = n.SouDeLibra(p); Console.WriteLine("O primeiro dia do mês é: " + a); Console.WriteLine("O último dia do mês é: " + b); Console.WriteLine("O mês de aniversário possui 31 dias? " + c ); Console.WriteLine("A data cai numa sexta-feira 13? " + d); Console.WriteLine("Quantas semanas faltam para o aniversário? " + e); Console.WriteLine("O aniversariante pertence ao detestável signo de Libra? " + f); O primeiro dia do mês é: 8/1/2004 12:00:00 AM O último dia do mês é: 8/31/2004 12:00:00 AM O mês de aniversário possui 31 dias? True A data cai numa sexta-feira 13? False Quantas semanas faltam para o aniversário? pessoa.Nome faltam -13 semanas para o seu aniversário O aniversariante pertence ao detestável signo de Libra? False ``` ### EXERCÍCIO 4 ```csharp= using System; public class RegistroBRValidator { public bool 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; return v1 && v2 && v3 && v4 && v5; } public bool 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; return v1 && v2 && v3; } } RegistroBRValidator registroBR = new RegistroBRValidator(); bool x = registroBR.ValidarCadastro("IgorLimaCharlesgmail.com", "99083"); Console.WriteLine("Cadastro mencionado está ok? " + x); RegistroBRValidator novoRegistroBR = new RegistroBRValidator(); bool z = novoRegistroBR.ValidarCadastro("1gorLim4Charles@gmail.com.br", "20040812"); Console.WriteLine("Cadastro mencionado está ok? " + z); x = Cadastro mencionado está ok? False z = Cadastro mencionado está ok? True ``` ### EXERCÍCIO 5 ```csharp= using System; public class Retangulo { public double Basee {get; set;} public double Altura {get; set;} } public class Cilindro { public double Raio {get; set;} public double Altura {get; set;} } public class Trigonometria { public double AreaRetangulo (Retangulo x) { return x.Basee * x.Altura; } public bool AreasIguais(Retangulo ret1, Retangulo ret2) { return AreaRetangulo(ret1) == AreaRetangulo(ret2); } public double VolumeCilindro (Cilindro cilindro) { double a = (Math.PI * (Math.Pow(cilindro.Raio, 2)) * cilindro.Altura); double b = Math.Round(a, 2); return b; } public bool TransferenciaPossivel (Cilindro ci1, Cilindro ci2) { return VolumeCilindro(ci1) == VolumeCilindro(ci2); } } Retangulo r1 = new Retangulo ( ); r1.Basee = 5; r1.Altura = 5; Retangulo r2 = new Retangulo ( ); r2.Basee = 6; r2.Altura = 6; Cilindro c1 = new Cilindro ( ); c1.Altura = 4; c1.Raio = 5; Cilindro c2 = new Cilindro ( ); c2.Altura = 5; c2.Raio = 4; 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.VolumeCilindro(c1); Console.WriteLine("O volume do cilindro é de: " + z); bool p = r.TransferenciaPossivel(c1, c2); Console.WriteLine(" É possível transferir de um cilindro pra outro? " + p); AreaRetangulo: 25 AreasIguais: False O volume do cilindro é de: 314.16 É possível transferir de um cilindro pra outro? 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 c1, Compra c2, Compra c3) { double a = TotalMasculino(c1); double b = TotalFeminino(c2); double c = TotalInfantil(c3); double d = TotalCalcados(c1.QtdCalcados, c2.QtdCalcados, c3.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 Compra1 = new Compra ( ); Compra1.QtdCamiseta = 4; Compra1.QtdCalca = 2; Compra1.QtdBlusa = 1; Compra1.QtdCalcados = 1; Compra Compra2 = new Compra ( ); Compra2.QtdBlusa = 1; Compra2.QtdCalca = 2; Compra2.QtdCamiseta = 0; Compra2.QtdCalcados = 1; Compra Compra3 = new Compra ( ); Compra3.QtdCalca = 2; Compra3.QtdCamiseta = 6; Compra3.QtdBlusa = 0; Compra3.QtdCalcados = 1; Brecho brecho = new Brecho ( ); double z = brecho.CalcularTotal(Compra1, Compra2, Compra3); Console.WriteLine($"O valor total de sua compra é de {z} reais"); O valor total de sua compra é de 595 reais ``` ### 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 p = new Pedido(); p.Valor = 1500; p.AnosGarantia = 3; p.DistanciaEntregaKm = 20; p.Parcelas = 10; double cupom = 15; LojaMoveis loja = new LojaMoveis(); Nota x = loja.CalcularCompra(p, cupom); Console.WriteLine($"O valor final é de {x.ValorFinal} reais e o número de sua DANTE/NF é: {x.NotaFiscal}"); O valor final é de 2628.7 reais e o número de sua DANTE/NF é: NF20210515163945 ```
{"metaMigratedAt":"2023-06-16T00:15:49.231Z","metaMigratedFrom":"Content","title":"SESSION THREE — FUNDAMENTOS DA LÓGICA","breaks":true,"contributors":"[{\"id\":\"80bf1c37-2722-44c2-96a3-490c9bac8b2e\",\"add\":11462,\"del\":0}]"}
Expand menu