# Final Session | Fund. Lógica
**Author:** Matheus Rafael Morato Rocha
**Turma:** InfoC
**Número:** 40
[TOC]
## Nível 1
### 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 alt, double bas)
{
double area = (alt * bas) / 2;
return area;
}
double x = AreaTriangulo(10, 5);
// 25
```
### 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)
{
return lado * 8;
}
double x = PerimetroOctogono(10);
// 80
```
### Exercício 3
Faça uma função ÚNICA que a partir da digonal maior e menor, calcule a área do losango.
```csharp=
public double AreaLosango (double p,double q)
{
double area = (p * q) / 2;
return area;
}
double a = AreaLosango(10 ,10);
a
// 50
```
### Exercício 4
Faça uma função ÚNICA que a partir da base e altura, calcule a área do paralelogramo.
```csharp=
public double AreaParalelogramo (double ALT,double BAS)
{
double area = ALT * BAS;
return area;
}
double a = AreaParalelogramo (10,10);
a
// 100
```
## Nível II
### Exercício 1
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 EnergaiaCinetica(double velocidade, double massa)
{
double energia = velocidade * massa;
double energia2 = Math.Pow(energia,2);
return energia2;
}
double a = EnergaiaCinetica (10,5);
a
// 2500
```
### Exercício 2
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 altura, double raio)
{
double volume = 3.14 * Math.Pow(raio,2) * altura;
return volume;
}
double a = VolumeCilindro (10,10);
a
// 3.141
```
### Exercício 3
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 ALT = peso / (altura * altura);
double arendonda = Math.Round (ALT,2);
return arendonda;
}
double a = IMC (65, 1.75);
a
// 21.22
```
### Exercício 4
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 catetoA,double catetoB)
{
double h = Math.Pow(catetoA,2) + Math.Pow(catetoB,2);
double H = Math.Pow(h,2);
double casa = Math.Round(H,2);
return casa;
}
double a = hipotenusa(20,20);
a
// 64.00
```
## 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=
public String UltimoNome(String NomeCompleto)
{
int corte = NomeCompleto.IndexOf(" ");
int corte2 = corte + 1;
String nome = NomeCompleto.Substring(corte2);
return nome;
}
String a = UltimoNome2("Matheus Rafael Morato Rocha");
a
// Matheus
```
### Exercício 2
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 CPF (string cpf)
{
bool valido = cpf.Contains("-");
bool caractere = cpf.Length == 9;
bool x = caractere || valido;
return x;
}
bool x = CPF("989-989-989");
x
// True
```
### Exercício 3
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 NomeCompleto)
{
int corte = NomeCompleto.LastIndexOf(" ");
int corte2 = corte + 1;
String nome = NomeCompleto.Substring(corte2);
return nome;
}
String a = UltimoNome2("Matheus Rafael Morato Rocha");
a
// Rocha
```
### Exercício 4
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 dominio (string email)
{
string x = email.Substring(email.IndexOf('@'));
return x;
}
string a = dominio ("matheuszap@gmail.com");
a
// gmail.com
```
## Nível IIIV
### Exercício 1
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 verificar (string aniversario)
{
DateTime a = Convert.ToDateTime(aniversario);
bool y = a.AddYears(18) < DateTime.Now;
return y;
}
bool a = verificar("2000-10-09");
a
// False
```
### Exercício 2
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=
using System;
public bool SegundoTrimestre (string data)
{
DateTime a = Convert.ToDateTime(data);
bool y = a.Month <= 06;
return y;
}
bool a = SegundoTrimestre("2021-10-09");
a
// False
```
### Exercício 3
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 SegundoTrimestre (string data)
{
DateTime a = Convert.ToDateTime(data);
bool y = a.Day <= 15;
return y;
}
bool a = SegundoTrimestre("2021-10-09");
a
// False
```
### Exercício 4
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 PrimeiroDiaDoMes (DateTime data)
{
DateTime mes = new DateTime(data.Year,data.Month,1);
DateTime proximo = mes.AddMonths(1);
return proximo;
}
DateTime a = new DateTime(2021,07,03);
DateTime x = PrimeiroDiaDoMes(a);
x
// 8/1/2021 12:00:00 AM
```
## Nível V
### Exercício 1
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 Verificar (string Pessoa1,string Pessoa2)
{
bool valido = Pessoa1 == Pessoa2;
return valido;
}
public String UltimoNome(String Pessoa1)
{
int corte = Pessoa1.LastIndexOf(" ");
int corte2 = corte + 1;
String nome = Pessoa1.Substring(corte2);
return nome;
}
public String UltimoNome2(String Pessoa2)
{
int corte = Pessoa2.LastIndexOf(" ");
int corte2 = corte + 1;
String nome = Pessoa2.Substring(corte2);
return nome;
}
bool a = Verificar ("Matheus Rafael Morato Rocha","Matheus Rafael Morato Rocha");
a
// True
```
### Exercício 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 delta (double a,double b,double c)
{
double delta2 = (Math.Pow(b, 2) - (-4 * a * c));
double total = encontrarX(a,b,c,delta2);
return total;
}
public double encontrarX (double a,double b,double c,double delta)
{
double x = (-b + Math.Sqrt(delta) / (2 * a));
double zap = x / 2;
return zap;
}
double a = delta (1,1,25);
a
// 2.01246890528022
```
### Exercício 3
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 Signo (DateTime Nascimento)
{
bool op = Nascimento.Month == 9 && Nascimento.Day > 22;
bool op2 = Nascimento.Month == 10 && Nascimento.Day < 23;
bool Libra = op == true || op2 == true;
return Libra;
}
public bool Verificar (DateTime Nascimento1,DateTime Nascimento2)
{
bool a = Signo (Nascimento1);
bool b = Signo (Nascimento2);
bool x = a == b;
return x;
}
DateTime a = new DateTime (2002,10,04);
DateTime b = new DateTime (2002,09,02);
bool z = Verificar(a,b);
z
```
### Exercício 4
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 RazaoDescobrir (double posicao,double numero)
{
double razao = posicao - posicao - 1;
double total = TermoGeral (posicao,numero,razao);
return total;
}
public double TermoGeral (double posicao,double numero,double razao)
{
double a = posicao + (numero - 1) * razao;
return a;
}
double x = TermoGeral (10,20,20);
x
// 390
```
{"metaMigratedAt":"2023-06-15T22:47:47.855Z","metaMigratedFrom":"Content","title":"Final Session | Fund. Lógica","breaks":true,"contributors":"[{\"id\":\"0ba297e4-eafa-413a-9b17-c3ef1702e693\",\"add\":8929,\"del\":923}]"}