# Session One Fundamentos da Lógica | Recomeçar
Autor: Luigi da silva coelho
[toc]
## Exercício 1
Crie uma função que implemente a lógica para calcular a média de 4 notas de um aluno.
```csharp=
public class NotasAluno
{
public double nota1;
public double nota2;
public double nota3;
public double nota4;
}
public double CalcularMedia (NotasAluno nota)
{
return (nota.nota1 + nota.nota2 + nota.nota3 + nota.nota4) / 4;
}
NotasAluno alunos = new NotasAluno();
alunos.nota1 = 8;
alunos.nota2 = 7;
alunos.nota3 = 7;
alunos.nota4 = 10;
double x = CalcularMedia(alunos);
Console.WriteLine(x)
// 8
```
## Exercício 2
Crie uma função que implemente a lógica para
calcular a área do Retângulo.
```csharp=
public class Retangulo
{
public double altura;
public double basee;
}
public double AreaRetangulo (Retangulo ret)
{
return ret.basee * ret.altura;
}
Retangulo ret = new Retangulo();
ret.altura = 5;
ret.basee = 10;
double x = AreaRetangulo(ret);
Console.WriteLine(x)
// 50
```
## Exercício 3
Crie uma função que a partir da base e altura de dois triângulos diferentes, crie uma função que verifique se o Triângulo-1 possui a área igual ao Triângulo-2, retorne verdadeiro se forem iguais e falso se forem diferentes.
```csharp=
public class Triangulo
{
public double altura;
public double basee;
}
public bool AreaTriangulo (Triangulo tri1, Triangulo tri2)
{
double Areatri1 = (tri1.basee * tri1.altura) / 2;
double Areatri2 = (tri2.basee * tri2.altura) / 2;
return Areatri1 == Areatri2;
}
Triangulo tri1 = new Triangulo ();
tri1.altura = 10;
tri1.basee = 2;
Triangulo tri2 = new Triangulo ();
tri2.altura = 5;
tri2.basee = 4;
bool x = AreaTriangulo (tri1, tri2);
Console.WriteLine(x)
// True
```
## Exercício 4
Crie uma função que a partir da quantidade de açaí pequenos, médios e grandes comprados por um cliente, calcule o total a pagar sabendo que os valores do açaí são R$ 10,00, R$ 12,00 e R$ 14,00 respectivamente e não sofrerão alteração de preço.
```csharp=
public class Pedidos
{
public double Pequeno;
public double Medios;
public double Grandes;
}
public double VendaAcai (Pedidos acai)
{
double Total = acai.Pequeno * 10 + acai.Medios * 12 + acai.Grandes * 14;
return Total;
}
Pedidos acai = new Pedidos();
acai.Pequeno = 2;
acai.Medios = 1;
acai.Grandes = 1;
double x = VendaAcai (acai);
Console.WriteLine(x)
// 46
```
## Exercício 5
Crie uma função que a partir do preço de um veículo e o total de parcelas que será financiado, calcule o valor final pago considerando uma taxa de 5% por mês.
```csharp=
public class CompraVeiculo
{
public double vlCarro;
public int parcelas;
}
public double CalcularTotalVeiculo (CompraVeiculo carro)
{
double juros = carro.vlCarro * carro.parcelas * 5 / 100;
double vltotal = carro.vlCarro + juros;
return vltotal;
}
CompraVeiculo carro = new CompraVeiculo();
carro.parcelas = 12;
carro.vlCarro = 25000;
double x = CalcularTotalVeiculo(carro);
Console.WriteLine("O preço total do Veiculo é " + x);
// O preço total do Veiculo é 40000
```
## Exercício 6
Crie uma função que a partir do nome de uma pessoa e um CEP, verifique se o CEP contém o caractere hífen (-) e possui um total de 9 caracteres.
Se o CEP for válido, retorne:
“XXX, o resultado da validação de seu CEP é: true”
ou
“XXX, o resultado da validação de seu CEP é: false”.
```csharp=
public class Endereco
{
public string NomePessoa;
public string cep;
}
public string ValidarCep (Endereco end)
{
bool validarCep = end.cep.Length == 9;
bool validarCep2 = end.cep.Contains("-");
bool validar = validarCep == true && validarCep2 == true;
return end.NomePessoa + ", o resultado da validação de seu CEP é: " + validar;
}
Endereco end = new Endereco();
end.NomePessoa = "Michael Jordan";
end.cep = "13165-000";
string x = ValidarCep(end);
Console.WriteLine(x)
// Michael Jordan, o resultado da validação de seu CEP é: True
```
## Exercício 7
Crie uma função composta que a partir de três nomes completos, retorne verdadeiro/falso se as pessoas são da mesma família, comparando o último nome das três pessoas
```csharp=
public class Pessoa
{
public string NomeCompleto;
}
public string Extrair (string name)
{
int espaco = name.LastIndexOf(" ");
string extrair = name.Substring(espaco);
return extrair;
}
public bool MesmaFamila (Pessoa p1, Pessoa p2, Pessoa p3)
{
bool familia = Extrair(p1.NomeCompleto) == Extrair(p2.NomeCompleto) && Extrair(p1.NomeCompleto) == Extrair(p3.NomeCompleto);
return familia;
}
Pessoa p1 = new Pessoa();
p1.NomeCompleto = "Michael Jordan";
Pessoa p2 = new Pessoa();
p2.NomeCompleto = "Lebron James";
Pessoa p3 = new Pessoa();
p3.NomeCompleto = "Bruno Jordan";
bool x = MesmaFamila (p1, p2, p3);
Console.WriteLine(x)
// false
```
## Exercício 8
Crie uma função composta que a partir dos valores 'a', 'b' e 'c', calcule o valor de xi e xii baseado na equação de segundo grau.
```csharp=
public class Equacao
{
public int a;
public int b;
public int c;
}
public class Resultado
{
public double xa;
public double xb;
}
public double Delta (Equacao termo)
{
double delta = Math.Pow(termo.b,2) - 4 * termo.a * termo.c;
return delta;
}
public Resultado Bhaskara (Equacao termo)
{
double x1 = (-termo.b + Math.Sqrt(Delta(termo))) / 2 * termo.a;
double x2 = (-termo.b - Math.Sqrt(Delta(termo))) / 2 * termo.a;
Resultado x = new Resultado();
x.xa = x1;
x.xb = x2;
return x;
}
Equacao termo = new Equacao();
termo.a = 1;
termo.b = 12;
termo.c = -13;
Resultado x = Bhaskara(termo);
Console.WriteLine("x1 é igual a " + x.xa + " e x2 é igual " + x.xb)
// x1 é igual a 1 e x2 é igual -13
```
## Exercício 9
Crie uma função composta que implemente a lógica
da seguinte situação: Em uma festa temática de
Astrologia, só podem entrar pessoas que são de
libra e maiores de 18 anos. Você deve retornar se
um casal que irá a festa poderão entrar.
```csharp=
public class Casal
{
public DateTime pessoa1;
public DateTime pessoa2;
}
public bool MaiorIdade (DateTime nasc)
{
DateTime hoje = DateTime.Now;
TimeSpan idadeParcial = hoje - nasc;
double anos = idadeParcial.TotalDays / 365;
bool maior = anos >= 18;
return maior;
}
public bool Libra (DateTime nasc)
{
bool possibilidade1 = nasc.Month == 9 && nasc.Day >= 23;
bool possibilidade2 = nasc.Month == 10 && nasc.Day <= 22;
return possibilidade1 == true || possibilidade2 == true;
}
public bool EntradaCasal (Casal namorados)
{
bool entrada1 = Libra(namorados.pessoa1) && MaiorIdade (namorados.pessoa1);
bool entrada2 = Libra(namorados.pessoa2) && MaiorIdade (namorados.pessoa2);
bool entrada = entrada1 == true && entrada2 == true;
return entrada;
}
Casal namorados = new Casal();
namorados.pessoa1 = new DateTime(2000, 09, 23);
namorados.pessoa2 = new DateTime(2000, 09, 23);
bool x = EntradaCasal(namorados);
Console.WriteLine(x)
// True
```
## Exercício 10
Crie uma função que implemente a lógica da seguinte situação: Para ir e voltar do trabalho uma pessoa abastece o carro semanalmente. A distância percorrida na ida e volta são diferentes, já que ele percorre caminhos diferentes para fugir do trânsito. No dia do rodízio, ele ainda percorre outros caminhos de ida e volta para não levar multa. Sabendo que a pessoa trabalha apenas de segunda a sexta e que o carro será abastecido com
gasolina, calcule o total que será gasto no mês considerando que um mês possui 4 semanas. Crie uma função para calcular o total gasto a partir das
quilometragens de ida e volta, considerando o dia de rodízio e o consumo por litro do veículo.
```csharp=
public class Trajeto
{
public double IdaComum;
public double VoltaComum;
}
public double GastoMensal (Trajeto comum, Trajeto rodizio, double consumo)
{
double Normal = (comum.IdaComum + comum.VoltaComum) * 4;
double Rodizio = rodizio.IdaComum + rodizio.VoltaComum;
double mes = (Normal + Rodizio) * 4;
double Consumo = mes / consumo;
double litros = Consumo * 3.8;
return litros;
}
Trajeto comum = new Trajeto();
comum.IdaComum = 10;
comum.VoltaComum = 12;
Trajeto rodizio = new Trajeto();
rodizio.IdaComum = 15;
rodizio.VoltaComum = 16;
double x = GastoMensal (comum, rodizio, 10);
Console.WriteLine(x)
// 180.88
```