autor: Felipe Oliveira Verissimo turma: Info C número: 16 [toc] ## It's always time to restart # Fundamentos da Lógica ### Trigonometria Crie uma classe representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ```csharp= using System; public class Trigonometria { public double Areadoretangulo (double Base, double altura) { return Base * altura; } public double Perimetrodoretangulo (double Base, double altura) { return Base + altura + Base + altura; } public bool Verificarsesaoiguais (double Base1, double altura1, double Base2, double altura2) { double area = Areadoretangulo (Base1, altura1); double area2 = Areadoretangulo (Base2, altura2); bool areas = area == area2; return areas; } } Trigonometria trig = new Trigonometria(); double calculo = trig.Areadoretangulo(20, 10); Console.WriteLine("area do retangulo: " + calculo); double calculo2 = trig.Perimetrodoretangulo(20, 10); Console.WriteLine("perimetro do retangulo: " + calculo2); bool calculo3 = trig.Verificarsesaoiguais(20, 10, 20, 10); Console.WriteLine("verificar se sao iguais: " + calculo3); // area do retangulo: 200 // perimetro do retangulo: 60 // verificar se sao iguais: True ``` ### Forma Trigonometria Crie uma classe representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ```csharp= using System; public class Forma { public double Base { get; set; } public double altura { get; set; } } public class Trigonometria { public double Areadoretangulo (Forma form) { return form.Base * form.altura; } public double Areadotriangulo (Forma form) { return form.Base + form.altura + form.Base + form.altura; } public double Areadoparalelogramo (Forma form) { return form.Base * form.altura; } } Trigonometria trig = new Trigonometria(); // area do retangulo: 400 // area do triangulo: 80 // area do paralelograma: 80 ``` ### Calendário Crie uma classe representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ```csharp= using System; public class Pessoa { public string nome { get; set; } public DateTime niver { get; set; } } public class Calendario { public DateTime Primeirodia (DateTime data) { DateTime x = new DateTime (data.Year, data.Month, 01); return x; } public DateTime Ultimodia (DateTime data) { int x = DateTime.DaysInMonth(data.Year, data.Month); DateTime y = new DateTime (data.Year, data.Month, x); return y; } public bool Possui31 (DateTime data) { int x = DateTime.DaysInMonth(data.Year, data.Month); bool y = 31 == x; return y; } public bool Sextafeira13 (DateTime data) { DayOfWeek x = data.DayOfWeek; bool y = x == DayOfWeek.Friday; return y; } public string Semanasniver (Pessoa pess) { DateTime x = DateTime.Now; DateTime y = new DateTime(pess.niver.Year, pess.niver.Month, pess.niver.Day); TimeSpan z = x - y; double c = z.TotalDays / 7; double b = Math.Round(c, 1); string a = pess.nome + ", faltam " + b + " semanas para seu niver"; return a; } public bool Soulibra (Pessoa pess) { DateTime x = new DateTime(pess.niver.Year, 09, 23); DateTime y = new DateTime(pess.niver.Year, 10, 22); bool z = pess.niver >= x && y >= pess.niver; return z; } } Calendario calen = new Calendario(); DateTime dat = new DateTime(2021, 12, 15); DateTime primeiro = calen.Primeirodia(dat); Console.WriteLine("primeiro dia : " + primeiro); DateTime ultimo = calen.Ultimodia(dat); Console.WriteLine("ultimo dia : " + ultimo); bool possui = calen.Possui31(dat); Console.WriteLine("31 dias: " + possui); bool feira13 = calen.Sextafeira13(dat); Console.WriteLine("sexta feira 13: " + feira13); Pessoa pess = new Pessoa(); pess.niver = new DateTime(2021, 6, 18); pess.nome = "Felipe"; string niver = calen.Semanasniver(pess); Console.WriteLine(niver); bool libra = calen.Soulibra(pess); Console.WriteLine("libra: " + libra); // primeiro dia : 12/1/2021 12:00:00 AM // ultimo dia : 12/31/2021 12:00:00 AM // 31 dias: True // sexta feira 13: False // Felipe, faltam -4.3 semanas para seu niver // libra: False ``` ### RegistroBRValidator Crie uma classe representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ```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("brunogmail.com", "1234"); Console.WriteLine("Cadastro ok? " + x); // adastro ok? False ``` ### Retangulo Cilindro Trigonometria Crie uma classe representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ```csharp= using System; public class Retangulo { public double altura { get; set; } public double basee { get; set; } } public class Cilindro { public double raio { get; set; } public double altura { get; set; } } public class Trigonometria { public double AreaRetangulo (Retangulo retan) { return retan.altura * retan.basee; } public double VolumeCilindro (Cilindro cilin) { return 3.14 * Math.Pow(cilin.raio, 2) * cilin.altura; } public bool AreasIguais (Retangulo retan1, Retangulo retan2) { double area1 = AreaRetangulo (retan1); double area2 = AreaRetangulo (retan2); return area1 == area2; } public bool TransferenciaPossivel (Cilindro cilin1, Cilindro cilin2) { double cilindro1 = VolumeCilindro (cilin1); double cilindro2 = VolumeCilindro (cilin2); return cilindro1 <= cilindro2; } } Trigonometria trig = new Trigonometria(); Retangulo retan = new Retangulo(); retan.altura = 9; retan.basee = 3; double AreaRetan = trig.AreaRetangulo(retan); Console.WriteLine(AreaRetan); Cilindro cilin = new Cilindro(); cilin.raio = 10; cilin.altura = 20; double VolumeCilin = trig.VolumeCilindro(cilin); Console.WriteLine(VolumeCilin); Retangulo retan1 = new Retangulo(); retan1.altura = 40; retan1.basee = 5; Retangulo retan2 = new Retangulo(); retan2.altura = 20; retan2.basee = 3; bool AreasIgua = trig.AreasIguais(retan1, retan2); Console.WriteLine(AreasIgua); Cilindro cilin1 = new Cilindro(); cilin1.raio = 8; cilin1.altura = 7; Cilindro cilin2 = new Cilindro(); cilin2.raio = 2; cilin2.altura = 7; bool TransfePossivel = trig.TransferenciaPossivel(cilin1, cilin2); Console.WriteLine(TransfePossivel); // 27 // 6280 // False // False ``` ### Compra Brecho ▪ Calcular o total de uma compra em um brechó a partir das compras masculinas, femininas e infantis. Nesse brechó, todas as roupas de uma categoria possui o mesmo preço, conforme listagem abaixo: ```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 { private double TotalMasculino (Compra compra) { double calca = compra.QtdCalca * 30; double camiseta = compra.QtdCamiseta * 30; double blusa = compra.QtdBlusa * 30; return calca + camiseta + blusa; } private double TotalFeminino (Compra compra) { double calca = compra.QtdCalca * 40; double camiseta = compra.QtdCamiseta * 40; double blusa = compra.QtdBlusa * 40; return calca + camiseta + blusa; } private double TotalInfantil (Compra compra) { double calca = compra.QtdCalca * 20; double camiseta = compra.QtdCamiseta * 20; double blusa = compra.QtdBlusa * 20; return calca + camiseta + blusa; } private double TotalCalcados (int qtdCalcadoMasculino, int qtdCalcadoFeminino, int qtdCalcadoInfantil) { int qtdMasculino = qtdCalcadoMasculino * 35; int qtdFeminino = qtdCalcadoFeminino * 35; int qtdInfantil = qtdCalcadoInfantil * 35; return qtdMasculino + qtdFeminino + qtdInfantil; } public double CalcularTotal (Compra masculino, Compra feminino, Compra infantil) { double totalMasc = TotalMasculino(masculino); double totalFemi = TotalFeminino(feminino); double totalInfan = TotalInfantil(infantil); double totalcalcados = TotalCalcados(masculino.Qtdcalcados, feminino.Qtdcalcados, infantil.Qtdcalcados); return totalMasc + totalFemi + totalInfan + totalcalcados; } } Compra masculino = new Compra(); masculino.QtdCalca = 14; masculino.QtdCamiseta = 25; masculino.QtdBlusa = 10; masculino.Qtdcalcados = 20; Compra feminino = new Compra(); feminino.QtdCalca = 21; feminino.QtdCamiseta = 15; feminino.QtdBlusa = 14; feminino.Qtdcalcados = 4; Compra infantil = new Compra(); infantil.QtdCalca = 13; infantil.QtdCamiseta = 10; infantil.QtdBlusa = 8; infantil.Qtdcalcados = 4; Brecho brecho = new Brecho(); double CalcTotal = brecho.CalcularTotal(masculino, feminino, infantil); Console.WriteLine(CalcTotal); // 5070 ``` ### Pedido Nota LojaMoveis Crie uma classe representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas: ```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 desconto = ValorDesconto(pedido.Valor, cupom); double garantia = ValorGarantia(pedido.Valor, pedido.AnosGarantia); double frete = ValorFrete(pedido.DistanciaEntregaKm); double valor = pedido.Valor - desconto + garantia + frete; double valorFinal = ValorJuros(valor, 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); } } LojaMoveis x = new LojaMoveis(); Pedido y = new Pedido(); y.Valor = 150; y.AnosGarantia = 2; y.DistanciaEntregaKm = 10; y.Parcelas = 2; Nota z = x.CalcularCompra(y, 20); Console.WriteLine(z.NotaFiscal); Console.WriteLine(z.ValorFinal); // NF20210519020451 // 178.23 ```
{"metaMigratedAt":"2023-06-16T00:33:50.792Z","metaMigratedFrom":"Content","title":"Fundamentos da Lógica","breaks":true,"contributors":"[{\"id\":\"6a057479-8a7c-401d-8967-32d1fedb4e2c\",\"add\":24539,\"del\":12124}]"}
Expand menu