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}]"}