# Final session | Fund. Lógica
>[color=blue]**Autor:** Letícia Rodrigues da Silva
**Turma:** IndoD
**Número:** 25
[TOC]
## Nível I
### Exercício 1
Faça uma função ÚNICA que a partir da base e altura, calcule a área do
triângulo.
```csharp=
public double AreaTriangulo (double basee, double altura)
{
double area = (basee * altura) / 2;
return area;
}
double area = AreaTriangulo(10, 4.5);
area
// 22.5
```
### Exercício 2
Faça uma função ÚNICA que a partir do lado, calcule o perímetro do
octógono.
```csharp=
public double PerimetroOctogono (double lado)
{
double calcular = lado * 8;
return calcular;
}
double calcular = PerimetroOctogono(5);
calcular
// 40
```
### Exercício 4
Faça uma função ÚNICA que a partir da diagonal maior e menor, calcule a área do losango.
```csharp=
public double AreaLosango (double diagonal1, double diagonal2)
{
double calcular = (diagonal1 * diagonal2) / 2;
return calcular;
}
double calcular = AreaLosango(8, 4.7);
calcular
// 18.8
```
### Exercício 5
Faça uma função ÚNICA que a partir da base e altura, calcule a área do paralelogramo.
```csharp=
public int AreaParalelogramo (int basee, int altura)
{
int calcular = basee * altura;
return calcular;
}
int calcular = AreaParalelogramo(10, 6);
calcular
// 60
```
## Nível II
### Exercício 1
Faça uma função ÚNICA que a partir do cateto oposto e adjacente, calculea hipotenusa. Arredonde a resposta para uma casa decimal.
```csharp=
public double CalcularHipotenusa (double oposto, double adjacente)
{
double potenciax = Math.Pow(oposto, 5);
double potenciay = Math.Pow(adjacente, 5);
double calcular = potenciax + potenciay;
double raiz = Math.Sqrt(calcular);
double arredondartotal = Math.Round(raiz);
return arredondartotal;
}
double total = CalcularHipotenusa(10, 12.7);
total
// 656
```
### Exercício 2
Faça uma função ÚNICA que a partir de um peso e altura de uma pessoa, calcule o IMC. Arredonde a resposta para duas casas decimais.
```csharp=
public double CalcularIMC (int peso, double altura1, double altura2)
{
double imc = peso / (altura1 * altura2);
double arredondarIMC = Math.Round(imc);
return arredondarIMC;
}
double calcular = CalcularIMC(56, 1.60, 1.60);
calcular
// 22
```
### Exercício 4
Faça uma função ÚNICA que a partir da massa e velocidade, calcule a energia cinética. Obrigatório o uso da função Math.Pow.
```csharp=
public double CalcularEnergiaCinetica (double massa, double velocidade)
{
double EC = (massa * velocidade) / 2;
double potencia1= Math.Pow(velocidade, 3.5);
double potencia2 = Math.Pow(velocidade, 3.5);
double calcular = potencia1 + potencia2;
return calcular;
}
double total = CalcularEnergiaCinetica(39, 14);
total
// 20534.21
```
### Exercício 5
Faça uma função ÚNICA que a partir da altura e raio, calcule o volume de um cilindro. Obrigatório o uso da função Math.Pow.
```csharp=
public double CalcularVolumeCilindro (double pi, double raio, double altura)
{
double volume = pi * raio * altura;
double potencia1 = Math.Pow(raio, 3);
double potencia2 = Math.Pow(raio, 3);
double calcular = potencia1 + potencia2;
return calcular;
}
double total = CalcularVolumeCilindro(3.14, 3, 2);
total
// 54
```
## Nível III
### Exercício 1
Faça uma função ÚNICA que a partir de um nome completo de uma pessoa, extraia o primeiro nome.
```csharp=
string ExtrairNome (string nome)
{
string nomecompleto = nome;
string nomeCompleto = "Leticia Rodrigues da Silva";
string extrair = nomeCompleto.Substring(0,7);
return extrair;
}
string nome = ExtrairNome("Leticia Rodrigues da silva");
nome
// Leticia
```
### Exercício 2
Faça uma função ÚNICA que a partir de um nome completo de uma pessoa, extraia o último nome.
```csharp=
string ExtrairUltimoNome (string nome)
{
string nomecompleto = nome;
int letras = nomecompleto.LastIndexOf(" ");
string posicao = nomecompleto.Substring(letras);
return posicao;
}
string nome = ExtrairUltimoNome("Leticia Rodrigues da silva");
nome
// Silva
```
### Exercício 3
Faça uma função ÚNICA que a partir de um e-mail de uma pessoa, extraia o domínio do e-mail.
```csharp=
bool ValidarEmail (string email)
{
bool validar = email.Contains("@");
return validar;
}
bool result = ValidarEmail("soulinda@gmail.com");
result
// True
```
### Exercício 4
Faça uma função ÚNICA que a partir de um CEP, retorne verdadeiro/falso se o CEP contém o caractere hífen (-) e possui um total de 9 caracteres.
```csharp=
bool ValidarCEP (string cep)
{
bool validar = cep.Length == 9 & cep.Contains("-");
return validar;
}
bool result = ValidarCEP("05987-310");
result
// True
```
## Nível IV
### Exercício 1
Faça uma função ÚNICA que a partir de uma data, descubra o último dia do mês a partir dessa data.
```csharp=
public DateTime UltimoDiaMes (DateTime data)
{
DateTime ProxMes = new DateTime(data.Year, data.Month, 1);
DateTime proximo = ProxMes.AddMonths(1);
DateTime ultimodia = proximo.AddDays(-1);
return ultimodia;
}
DateTime d = new DateTime(2021, 06, 28);
DateTime result = UltimoDiaMes(d);
result
// 6/30/2021 12:00:00 AM
```
### Exercício 3
Faça uma função ÚNICA que a partir de uma data, retorne verdadeiro/falso se a data pertence ao segundo trimestre do ano.
```csharp=
public bool SegundoTrimestre (DateTime data)
{
int mes = data.Month;
bool m = mes <= 6 && mes >= 4;
return m;
}
DateTime t = new DateTime(2021,8,15);
bool s = SegundoTrimestre(t);
s
```
### Exercício 4
Faça uma função ÚNICA que a partir de uma data, retorne
verdadeiro/falso se a pessoa tem mais de 18 anos a partir do dia atual.
```csharp=
public bool Maior18 (DateTime nascimento)
{
DateTime limitedata = DateTime.Now.AddYears(-18);
bool maior = nascimento <= limitedata;
return maior;
}
DateTime m = new DateTime(1982, 10, 08);
bool result = Maior18(m);
result
// True
```
### Exercício 5
Faça uma função ÚNICA que a partir de uma data, retorne verdadeiro/falso se a data pertence a primeira quinzena do mês.
```csharp=
public bool PrimeiraQuinzena (DateTime data)
{
int dias = data.Day;
bool d = dias <= 15;
return d;
}
DateTime q = new DateTime(2021,8,15);
bool p = PrimeiraQuinzena(q);
p
// True
```
## Nível V
### Exercício 4
Faça uma função COMPOSTA que a partir de dois nomes completos, retorne verdadeiro/falso se as pessoas são da mesma família, comparando o último nome das duas pessoas.
```csharp=
public bool MesmaFamilia (string nome1, string nome2)
{
string sobrenome1 = UltimoNome(nome1);
string sobrenome2 = UltimoNome(nome2);
bool nomecompleto = sobrenome1 == sobrenome2;
return nomecompleto;
}
public string UltimoNome (string nome1)
{
int espaco = nome1.LastIndexOf(" ");
int nome = nome1.Length;
string sobrenome1 = nome1.Substring(espaco,nome-espaco);
string n = sobrenome1.Trim();
return n;
}
string nome1= "Henry Zarlenga Viana";
string n1 = "Josefina Rodrigues Fina";
bool nomE = MesmaFamilia(nome1,n1);
nomE
// False
```
### Exercício 5
Faça uma função COMPOSTA que a partir de duas datas de nascimento, retorne verdadeiro/false se as duas pessoas forem do signo de libra.
```csharp=
public bool Libra(DateTime nascimento)
{
bool pessoa1 = nascimento.Month == 9 && nascimento.Day > 22;
bool pessoa2 = nascimento.Month == 10 && nascimento.Day < 23;
bool libra = pessoa1 == true || pessoa2 == true;
return libra;
}
public bool Signo(DateTime pessoa1, DateTime pessoa2)
{
bool p1 = Libra(pessoa1);
bool p2 = Libra(pessoa2);
bool result = p1 == p2;
return result;
}
bool s = Signo(new DateTime(2003, 08, 20), new DateTime(1992, 10, 1));
s
// False
```
### Exercício 1
Faça uma função COMPOSTA que a partir dos valores 'a', 'b' e 'c’, calcule o valor de 'x’ baseado na equação de segundo grau.
```csharp=
public double ValorX (int a, int b , int c)
{
double potencia = Math.Pow ( -b, 2);
double raizB = Math.Sqrt ( potencia - 4 * a * c);
return raizB;
}
public string Bhaskara (int a, int b, int c)
{
double calcularbhaskara1 = (-b + ValorX(a, b, c)) / 2 * a;
double calcularbhaskara2 = (-b - ValorX(a, b, c)) / 2 * a;
string e = "segundograu = " + calcularbhaskara1+ ", " + calcularbhaskara2 + "";
return e;
}
string result = Bhaskara (10, 06, -05);
result
// segundograu = 46.8114574786861, -106.811457478686
```
### Exercício 3
```csharp=
public double CalcularPG (double q, double n)
{
double progressao = (n-1);
return Math.Pow(q, progressao);
}
public double ProgressaoGeometrica (double total, double q, double n)
{
double p = total * CalcularPG(q, n);
return p;
}
double result = ProgressaoGeometrica (5.7, 8, 2);
result
// 45.6
```