### INFO B - Caroline Campos Lima, 04
# F.L Final Session: It's all or nothing
[toc]
## Nível I
### Exercício 1
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 b, double h)
{
return (b * h) / 2;
}
double a = AreaTriangulo(12, 7);
// 42
```
### Exercício 2
2. Faça uma função ÚNICA que a partir do lado, calcule o perímetro do octógono.
```csharp=
public double PerimetroOctonogo(double lado)
{
return lado * 8;
}
double a = PerimetroOctonogo(12);
// 96
```
### Exercício 3
3. Faça uma função ÚNICA que a partir da base maior, base menor e altura, calcule a área do trapézio.
```csharp=
public double AreaTrapezio(double h, double b, double B)
{
return h * (B + b) / 2;
}
double a = AreaTrapezio(5, 14, 7);
// 52.5
```
### Exercício 4
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 d1, double d2)
{
return (d1 * d2) / 2;
}
double a = AreaLosango(14, 9);
// 63
```
### Exercício 5
5. Faça uma função ÚNICA que a partir da base e altura, calcule a área do paralelogramo.
```csharp=
public double AreaParalelogramo(double b, double h)
{
return b * h;
}
double a = AreaParalelogramo(22, 15);
// 330
```
## Nível II
### Exercício 1
1. Faça uma função ÚNICA que a partir do cateto oposto e adjacente, calcule a hipotenusa. Arredonde a resposta para uma casa decimal.
```csharp=
public double hipotenusa(double CatetoOposto, double CatetoAjacente)
{
double oposto = Math.Pow(CatetoOposto, 2);
double adjacente = Math.Pow(CatetoAjacente, 2);
double catetos = oposto + adjacente;
double resultado = Math.Sqrt(catetos);
return Math.Round(resultado, 1);
}
double a = hipotenusa(21, 14);
// 25.2
```
### Exercício 2
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 IMC(double peso, double altura)
{
double formula = peso / (altura * altura);
return Math.Round(formula, 2);
}
double a = IMC(61, 1.67);
// 21.87
```
### Exercício 3
3. Faça uma função ÚNICA que a partir de um capital, parcelas e taxa de juros, calcule o juros compostos. Arredonde a resposta para uma casa decimal.
```csharp=
public double JurosComposto(double capital, int parcelas, double taxa)
{
double juros = capital * Math.Pow(1 + taxa / 100, parcelas);
double resultado = capital + juros;
return Math.Round(resultado, 1);
}
double a = JurosComposto(1500, 8, 2);
// 3257.5
```
### Exercício 4
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 EnergiaCinetica(double massa, double velocidade)
{
return massa * Math.Pow(velocidade, 2) / 2;
}
double a = EnergiaCinetica(2.7, 15);
// 303.75
```
### Exercício 5
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 VolumeCilindro(double raio, double altura)
{
return 3.14 * Math.Pow(raio, 2) * altura;
}
double a = VolumeCilindro(3, 7);
// 197.82
```
## Nível III
### Exercício 1
1. Faça uma função ÚNICA que a partir de um nome completo de uma pessoa, extraia o primeiro nome.
```csharp=
public string PrimeiroNome(string nome)
{
return nome.Substring(0, nome.IndexOf(" "));
}
string a = PrimeiroNome("Soraia Camargo");
// Soraia
```
### Exercício 2
2. Faça uma função ÚNICA que a partir de um nome completo de uma pessoa, extraia o último nome.
```csharp=
public string UltimoNome(string nome)
{
return nome.Substring(nome.LastIndexOf(" "));
}
string a = UltimoNome("Sabrina Amaral");
// Amaral
```
### Exercício 3
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=
public string DominioEmail(string nome)
{
return nome.Substring(nome.IndexOf("@"));
}
string a = DominioEmail("murilo.santos@gmail.com");
// @gmail.com
```
### Exercício 4
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=
public bool CEP(string cep)
{
bool numeros = cep.Length == 9;
bool hifen = cep.Contains("-");
return numeros == true && hifen == true;
}
bool a = CEP("04394-270");
// true
```
### Exercício 5
5. Faça uma função ÚNICA que a partir de um telefone com máscara e DDD incluído ex. (11) 94343-0808, retorne apenas os números do telefone ex. 11943430808.
```csharp=
public string telefone(string numero)
{
string numeros = numero.Replace("(", "");
numeros = numeros.Replace(")", "");
numeros = numeros.Replace("-", "");
return numeros;
}
string a = telefone("(11)92985-2470");
// 11929852470
```
## Nível IV
### Exercício 1
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 UltimoDia(DateTime data)
{
int passo1 = data.Day;
DateTime passo2 = data.AddMonths(1);
DateTime passo3 = passo2.AddDays(-passo1);
return passo3;
}
DateTime data = new DateTime(2015, 8, 19);
DateTime a = UltimoDia(data);
// 8/31/2015 12:00:00 AM
```
### Exercício 2
2. Faça uma função ÚNICA que a partir de uma data, descubra o primeiro dia do próximo mês a partir dessa data.
```csharp=
public DateTime PrimeiroDiaProxMes(DateTime data)
{
DateTime ProxMes = new DateTime(data.Year, data.Month, 1);
DateTime prox = ProxMes.AddMonths(1);
return prox;
}
DateTime data = new DateTime(1964, 07, 22);
DateTime a = PrimeiroDiaProxMes(data);
// 8/1/1964 12:00:00 AM
```
### Exercício 3
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 PrimeiraQuinzena(DateTime data)
{
return data.Day <= 15;
}
DateTime data = new DateTime(2010, 9, 21);
bool a = PrimeiraQuinzena(data);
// true
```
### Exercício 4
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 hoje = DateTime.Now;
return nascimento <= hoje.AddYears(-18);
}
DateTime nascimento = new DateTime(2005, 1, 17);
bool a = Maior18(nascimento);
// false
```
### Exercício 5
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(int ano, int mes, int dia)
{
return dia <= 15;
}
bool a = PrimeiraQuinzena(1991, 05, 13);
// true
```
## Nível V
### Exercício 1
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 EquacaoSegundoGrau(double a, double b, double c)
{
double x = ValorX(a, b, c);
return x;
}
public double ValorX(double a, double b, double c)
{
double delta = Math.Pow(b, 2) - 4 * a * c;
double x1 = (-b + Math.Sqrt(delta)) / 2 * a;
double x2 = (-b - Math.Sqrt(delta)) / 2 * a;
return x1 + x2;
}
double a = EquacaoSegundoGrau(2, -3, -5);
// 6
```
### Exercício 2
2. Faça uma função COMPOSTA que encontre um termo de uma PA (Progressão Aritmética), a partir do primeiro termo, razão e posição do termo que deseja encontrar.
```csharp=
public double ProgressaoAritmetica(double PrimeiroTermo, int PosicaoTermo, double razao)
{
double termo = PA(PrimeiroTermo, PosicaoTermo, razao);
return termo;
}
public double PA(double a1, int n, double r)
{
return a1 + (n - 1) * r;
}
double a = ProgressaoAritmetica(6, 5, 4);
// 22
```
### Exercício 3
3. Faça uma função COMPOSTA que encontre um termo de uma PG (Progressão Geométrica), a partir do primeiro termo, razão e posição do termo que deseja encontrar.
```csharp=
public double ProguessaoGeometrica(double PrimeiroTermo, int PosicaoTermo, double razao)
{
double termo = PG(PrimeiroTermo, PosicaoTermo, razao);
return termo;
}
public double PG(double a1, int n, double q)
{
double passo1 = Math.Pow(a1, n);
double passo2 = n * (n - 1) / 2;
double passo3 = Math.Pow(q, passo2);
return passo3;
}
double a = ProguessaoGeometrica(1, 8, 3);
// 22876792454961
```
### Exercício 4
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 familia(string nome1, string nome2)
{
string ultimo1 = sobrenome(nome1);
string ultimo2 = sobrenome(nome2);
return ultimo1 == ultimo2;
}
public string sobrenome(string UltimoNome)
{
return UltimoNome.Substring(UltimoNome.LastIndexOf(" "));
}
bool a = familia("Lohana Silva Pereira", "Gustavo Alves Pereira");
// true
```
### Exercício 5
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 librianos(DateTime pessoa1, DateTime pessoa2)
{
bool libra1 = libra(pessoa1);
bool libra2 = libra(pessoa2);
return libra1 == true && libra2 == true;
}
public bool libra(DateTime nascimento)
{
bool passo1 = nascimento.Month == 9 && nascimento.Day > 22;
bool passo2 = nascimento.Month == 10 && nascimento.Day < 23;
return passo1 == true || passo2 == true;
}
DateTime nascimento1 = new DateTime(2021, 10, 15);
DateTime nascimento2 = new DateTime(1998, 10, 3);
bool a = librianos(nascimento1, nascimento2);
// true
```