# Session one: recomeçar | Fund.logica | 2° bimestre
**Nome** Kevin Ribeiro de Andrade
**número** 27
**turma** INFO A
## Exercício 1
Crie uma função que implemente a lógica para
calcular a média de 4 notas de um aluno.
```csharp=
using System;
public class notas
{
public double nota1;
public double nota2;
public double nota3;
public double nota4;
}
public double calc_nota(notas nt)
{
return (nt.nota1 + nt.nota2 + nt.nota3 + nt.nota4) / 4;
}
notas vl = new notas();
vl.nota1 = 10;
vl.nota2 = 10;
vl.nota3 = 10;
vl.nota4 = 10;
double x = calc_nota(vl);
x
```
## Exercício 2
Crie uma função que implemente a lógica para
calcular a área do Retângulo.
```csharp=
using System;
public class retan
{
public int basee;
public int altura;
}
public long calc_retan(retan vl)
{
long arm = vl.basee * vl.altura;
return arm;
}
retan adc = new retan();
adc.basee = 2;
adc.altura = 2;
long x = calc_retan(adc);
x
```
## Exercício 3
Crie uma função que a partir da base e altura de dois
triângulos diferentes, crie uma função que verifique se o
[Triângulo-1] possui a área igual ao [Triângulo-2], retorne
verdadeiro se forem iguais e falso se forem diferentes.
```csharp=
using System;
//base * altura / 2
public class triang
{
public double basee;
public double altura;
}
public bool calc_triang (triang tri, triang tri2)
{
double calc = (tri.basee * tri.altura) / 2;
double calc2 = (tri2.basee * tri2.altura) / 2;
return calc == calc2 ;
}
triang t1 = new triang();
t1.basee = 25;
t1.altura = 37;
triang t2 = new triang();
t2.basee = 13;
t2.altura = 17;
bool x = calc_triang(t1,t2);
x
```
## Exercício 4
Crie uma função que a partir da quantidade de açaí
pequenos, médios e grandes comprados por um cliente,
calcule o total a pagar sabendo que os valores do açaí são
R$ 10,00, R$ 12,00 e R$ 14,00 respectivamente e não
sofrerão alteração de preço.
```csharp=
using System;
//açaí pequeno- 10,00
//açaí médio- 12,00
//açaí grande- 14,00
public class qtdacais
{
public long acai_pequeno;
public long acai_medio;
public long acai_grande;
}
public double calc_pedido(qtdacais qtd)
{
double pequeno = 10.00;
double medio = 12.00;
double grande = 14.00;
return (qtd.acai_pequeno * pequeno) + (qtd.acai_medio * medio) + (qtd.acai_grande * grande);
}
qtdacais vl = new qtdacais();
vl.acai_pequeno = 1;
vl.acai_medio = 2;
vl.acai_grande = 2;
double x = calc_pedido(vl);
x
```
## Exercício 5
Crie uma função que a partir do preço de um veículo e o
total de parcelas que será financiado, calcule o valor final
pago considerando uma taxa de 5% por mês.
```csharp=
using System;
public class pedido_carro
{
public double preco;
public long parcelas;
}
public double calc_compra(pedido_carro nr)
{
double calc = (nr.preco * 5) / 100;
double calc_parcelas = nr.preco / nr.parcelas;
return calc + calc_parcelas;
}
pedido_carro vl = new pedido_carro();
vl.preco = 10299.75;
vl.parcelas = 4;
double x = calc_compra(vl);
x
```
## Exercício 6
Crie uma função que a partir do nome de uma pessoa e
um CEP, verifique se o CEP contém o caractere hífen (-) e
possui um total de 9 caracteres.
Se o CEP for válido, retorne:
“XXX, o resultado da validação de seu CEP é: true”
ou
“XXX, o resultado da validação de seu CEP é: false”.
```csharp=
using System;
// Pra que retornar em string? Crazy
public class endereco
{
public string nome;
public string CEP;
}
public string valid_CEP(endereco end)
{
long verific = end.CEP.Length;
bool verific2 = end.CEP.Contains("-");
bool comp = verific == 9;
bool comp2 = comp == true || verific2 == false;
string conv = Convert.ToString(comp2);
return conv;
}
endereco valid = new endereco();
valid.nome = "Rin tohsaka";
valid.CEP = "79036-160";
string x = valid_CEP(valid);
x
```
## Exercício 7
Crie uma função composta que a partir de três nomes
completos, retorne verdadeiro/falso se as pessoas são da
mesma família, comparando o último nome das três
pessoas
```csharp=
using System;
public class nome
{
public string nomeCompleto;
}
public string extrair_nome(string noms)
{
int posicao = noms.LastIndexOf(" ");
string ultimo_nome = noms.Substring(posicao);
return ultimo_nome;
}
public bool msm_familia(nome p1, nome p2, nome p3)
{
return extrair_nome(p1.nomeCompleto) == extrair_nome(p2.nomeCompleto) && extrair_nome(p1.nomeCompleto) == extrair_nome(p3.nomeCompleto);
}
nome p1 = new nome();
p1.nomeCompleto = Console.ReadLine();
nome p2 = new nome();
p2.nomeCompleto = Console.ReadLine();
nome p3 = new nome();
p3.nomeCompleto = Console.ReadLine();
bool x = msm_familia(p1, p2, p3);
x
```
## Exercício 8
Crie uma função composta que a partir dos valores
'a', 'b' e 'c', calcule o valor de xi e xii baseado na
equação de segundo grau.
```csharp=
using System;
public class equacao
{
public long a;
public long b;
public long c;
}
public class resultado
{
public double x1;
public double x2;
}
public double delta(equacao eq)
{
return Math.Pow(eq.b,2) - 4 * eq.a * eq.c;
}
public resultado segundo_grau(equacao eq)
{
double res = (-eq.b + Math.Sqrt(delta(eq))) / 2 * eq.a;
double res2 = (-eq.b - Math.Sqrt(delta(eq))) / 2 * eq.a;
resultado resul = new resultado ();
resul.x1 = res;
resul.x2 = res2;
return resul;
}
equacao result = new equacao();
result.a = 2;
result.b = -2;
result.c = -2;
resultado x = segundo_grau(result);
Console.WriteLine("res1 é igual a:" + x.x1);
Console.WriteLine("res2 é igual a:" + x.x2);
```
## Exercício 9
Crie uma função composta que implemente a lógica
da seguinte situação: Em uma festa temática de
Astrologia, só podem entrar pessoas que são de
libra e maiores de 18 anos. Você deve retornar se
um casal que irá a festa poderão entrar.
```csharp=
using System;
using System;
public class casal
{
public DateTime nascPessoa1;
public DateTime nascPessoa2;
}
public bool libra(DateTime nasc)
{
bool res = nasc.Month == 9 && nasc.Day > 22;
bool res2 = nasc.Month == 10 && nasc.Day < 23;
return res == true || res2 == true;
}
public bool menor_maior18(DateTime nasc)
{
DateTime agora = DateTime.Now;
TimeSpan calc = agora - nasc;
double calc2 = calc.TotalDays / 365;
return calc2 >= 18;
}
public bool permitir_entrada(casal cs)
{
bool comp = libra(cs.nascPessoa1) == true && menor_maior18(cs.nascPessoa1) == true;
bool comp2 = libra(cs.nascPessoa2) == true && menor_maior18(cs.nascPessoa2) == true;
return comp == true && comp2 == true;
}
casal dt = new casal();
dt.nascPessoa1 = new DateTime (2002,09,25);
dt.nascPessoa2 = new DateTime (2003,10,21);
bool x = permitir_entrada(dt);
x
```
## Exercício 10
Crie uma função que implemente a lógica da seguinte
situação: Para ir e voltar do trabalho uma pessoa abastece
o carro semanalmente. A distância percorrida na ida e
volta são diferentes, já que ele percorre caminhos
diferentes para fugir do trânsito. No dia do rodízio, ele
ainda percorre outros caminhos de ida e volta para não
levar multa. Sabendo que a pessoa trabalha apenas de
segunda a sexta e que o carro será abastecido com
gasolina, calcule o total que será gasto no mês
considerando que um mês possui 4 semanas. Crie uma
função para calcular o total gasto a partir das
quilometragens de ida e volta, considerando o dia de
rodízio e o consumo por litro do veículo.
```csharp=
using System;
public class caminho
{
public double ida;
public double volta;
}
public double calc_percurso ( caminho comum, caminho rdz, double consumo)
{
double calckm_semana = (comum.ida + comum.volta) * 5 + (rdz.ida + rdz.volta);
double calc_consumo = calckm_semana / consumo;
return calc_consumo * 3.8;
}
caminho cmh = new caminho ();
cmh.ida = 12.6;
cmh.volta= 11.4;
caminho cam = new caminho ();
cam.ida = 14.8;
cam.volta = 17.3;
double x = calc_percurso(cmh, cam, 13.7);
x
```