---
# System prepended metadata

title: Final Session | Fund. Lógica

---

# 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
```