## Session Three: It's always time to restart - Fundamentos de Lógica
Autor: Jonathan Fernando Costa Galo
[toc]
## Funções Package - Códigos no Csharp
### Exercício 1 - 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:
> 1. Calcular a área do retângulo baseado em sua
altura e base.
> 2. Calcular o perímetro do retângulo baseado em sua altura e base.
> 3. Verificar se dois retângulos são iguais baseado em suas áreas.
```csharp=
public class Retangulo
{
public double Altura {get;set;}
public double Base {get;set;}
}
public class Trigonometria
{
public bool RetanguloIguais(Retangulo ret1, Retangulo ret2)
{
return AreaRetangulo(ret1.Altura, ret1.Base) == AreaRetangulo(ret2.Altura, ret2.Base);
}
private double AreaRetangulo(double a, double b)
{
double area = a * b;
return area;
}
public double PerimetroRetangulo(double a, double b)
{
double per = a + a + b + b;
return per;
}
}
Trigonometria trig = new Trigonometria();
// double x = trig. AreaRetangulo(10, 5);
// Console.WriteLine(x);
Console.WriteLine("Exercício 1");
double x1 = trig.PerimetroRetangulo(10, 5);
Console.WriteLine("O perímetro do retangulo é " + x1);
Retangulo r1 = new Retangulo();
r1.Altura = 10;
r1.Base = 5;
Retangulo r2 = new Retangulo();
r2.Altura = 25;
r2.Base = 2;
bool x2 = trig.RetanguloIguais(r1, r2);
Console.WriteLine("Os retangulos são iguais: " + x2);
```
### Exercício 2 - 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:
> 1. Calcular a área do retângulo baseado em sua
altura e base abstraído em um tipo composto.
> 2. Calcular a área do triângulo baseado em sua
altura e base abstraído em um tipo composto.
> 3. Calcular a área do paralelogramo baseado em sua altura e base abstraído em um tipo composto.
```csharp=
public class RetanTrianParal
{
public double Altura {get;set;}
public double Base {get;set;}
}
public class Trigonometria_1
{
public double AreaRetangulo(RetanTrianParal Retangulo)
{
double a = Retangulo.Base;
double b = Retangulo.Altura;
double areaR = a * b;
return areaR;
}
public double AreaTriangulo(RetanTrianParal Triangulo)
{
double a = Triangulo.Base;
double b = Triangulo.Altura;
double areaT = (a * b)/2;
return areaT;
}
public double AreaParalelogramo(RetanTrianParal Paralelogramo)
{
double a = Paralelogramo.Base;
double b = Paralelogramo.Altura;
double areaP = a * b;
return areaP;
}
}
Trigonometria_1 trig1 = new Trigonometria_1();
// double x = trig. AreaRetangulo(10, 5);
// Console.WriteLine(x);
Console.WriteLine("Exercício 2");
RetanTrianParal b1 = new RetanTrianParal();
b1.Altura = 10;
b1.Base = 5;
RetanTrianParal b2 = new RetanTrianParal();
b2.Altura = 25;
b2.Base = 2;
RetanTrianParal b3 = new RetanTrianParal();
b3.Altura = 25;
b3.Base = 2;
double a1 = trig1.AreaRetangulo(b1);
Console.WriteLine("A area do triangulo é de: " + a1);
double a2 = trig1.AreaTriangulo(b2);
Console.WriteLine("A area do retangulo é de: " + a2);
double a3 = trig1.AreaParalelogramo(b3);
Console.WriteLine("A area do paralelogramo é de: " + a3);
```
[//]: # "Exercicio está tudo errado"
### Exercício 3 - 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:
> 1. Retorne o primeiro dia do mês a partir de uma data.
> 2. Retorne o último dia do mês a partir de uma data.
> 3. Verifique se o mês possui 31 dias a partir de uma data.
> 4. Verifique se uma data cai em uma sexta-feira 13
> 5. Retorne quantas semanas faltam para chegar no aniversário de uma pessoa a partir de seu nome e data de aniversário abstraído em um tipo composto. O retorno deve seguir o template: “XXXX, faltam XXXX semanas para seu niver.”
> 6. Retorne se uma pessoa é de Libra a partir do dia em que nasceu abstraído em um tipo composto.
```csharp=
public class Retangulo
{
public double Altura {get;set;}
public double Base {get;set;}
}
public class Trigonometria
{
public DateTime PrimeiroDia(DateTime d1)
{
DateTime dia1 = DateTime.Day(d1) + "-" + DateTime.Month(d1) + "-" + "01";
return dia1;
}
public double UltimoDia(DateTime d1)
{
DateTime UltDia = start_date(d1);
return UltDia;
}
}
Console.WriteLine("Exercício 3");
```
### Exercício 5 - 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:
> 1. Calcular a área do retângulo.
> 2. Calcular o volume do cilindro.
> 3. Verificar se dois retângulos são iguais baseado em sua área. Utilize a ideia de função composta.
> 4. Verificar se é possível transferir o conteúdo do primeiro cilindro ao segundo. Utilize a ideia de função composta.
```csharp=
```