# Session 7 - Fundamentos da Lógica
Erik Alexandre da Silva -- Info B -- Nº10
[toc]
## Treino Focado A
```csharp=
using System;
using System.Collections.Generic;
public class Notas{
public double N1 {get; set;}
public double N2 {get; set;}
public double N3 {get; set;}
}
public class Retangulo{
public double Altura {get; set;}
public double Base {get; set;}
}
public class TreinoFocadoA{
public List<int> SomaImapares ( List<int> listaNumeros ){
int NSomado = 0;
List<int> Soma = new List<int>();
foreach ( int N in listaNumeros ){
if(N % 2 != 0){
NSomado += N;
}
}
Soma.Add(NSomado);
return Soma;
}
public List<int> NumerosCubo (List<int> listaNumeros){
List<int> Cubo = new List<int>();
foreach( int N in listaNumeros){
Cubo.Add(
Convert.ToInt32(Math.Pow(N, 3))
);
}
return Cubo;
}
public List<double> RaizNumeros (List<double> listaNumeros){
List<double> Raiz = new List<double>();
foreach(double N in listaNumeros){
Raiz.Add(
Math.Round( Math.Sqrt(N) ,3)
);
}
return Raiz;
}
public int MaiorNumero (List<int> listaNumeros){
int Maior = 0;
foreach(int N in listaNumeros){
if(N > Maior){
Maior = N;
}
}
return Maior;
}
public double Media (List<double> listaNumeros){
double M = 0;
foreach(double N in listaNumeros ){
M += N;
}
M /= listaNumeros.Count;
return M;
}
public List<double> CalcularMedia (List<Notas> NotasAlunos){
List<double> MediaAluno = new List<double>();
foreach( Notas N in NotasAlunos ){
MediaAluno.Add(
(N.N1 + N.N2 + N.N3) / 3
);
}
return MediaAluno;
}
private double AreaRetangulo(Retangulo r){
return r.Altura * r.Base;
}
public List<double> AreaRetangulos( List<Retangulo> listaRetangulos ){
List<double> area = new List<double>();
foreach(Retangulo r in listaRetangulos){
area.Add(
AreaRetangulo(r)
);
}
return area;
}
}
List<int> Numeros = new List<int>(){
1,2,3,4,5
};
List<double> NumerosDecimais = new List<double>(){
9, 10, 20, 25, 100
};
Notas n1 = new Notas();
n1.N1 = 5;
n1.N2 = 5;
n1.N3 = 5;
Notas n2 = new Notas();
n2.N1 = 6;
n2.N2 = 6;
n2.N3 = 6;
Notas n3 = new Notas();
n3.N1 = 7;
n3.N2 = 7;
n3.N3 = 7;
List<Notas> NotasAlunos = new List<Notas>(){
n1,n2,n3
};
Retangulo r1 = new Retangulo();
r1.Altura = 5;
r1.Base = 5;
Retangulo r2 = new Retangulo();
r2.Altura = 4;
r2.Base = 4;
Retangulo r3 = new Retangulo();
r3.Altura = 9;
r3.Base = 9;
List<Retangulo> ListaReatangulo = new List<Retangulo>(){
r1, r2, r3
};
TreinoFocadoA T1 = new TreinoFocadoA();
List<int> a1 = T1.SomaImapares(Numeros);
Console.WriteLine($"-SomaImpares {string.Join(" - ", a1)}");
List<int> b1 = T1.NumerosCubo(Numeros);
Console.WriteLine($"-NumerosCubo {string.Join(" - ", b1)}");
List<double> c1 = T1.RaizNumeros(NumerosDecimais);
Console.WriteLine($"-RaizNumeros {string.Join(" - ", c1)}");
int d1 = T1.MaiorNumero(Numeros);
Console.WriteLine($"-MaiorNumero {d1}");
double e1 = T1.Media(NumerosDecimais);
Console.WriteLine($"-Media {e1}");
List<double> f1 = T1.CalcularMedia(NotasAlunos);
Console.WriteLine($"-CalcularMedia {string.Join(" - ", f1)}");
List<double> g1 = T1.AreaRetangulos(ListaReatangulo);
Console.WriteLine($"-AreaRetangulos {string.Join(" - ", g1)}");
```
## Treino Focado B
```csharp=
using System;
using System.Collections.Generic;
public class Pessoa{
public string Nome {get; set;}
public DateTime Nascimento {get; set;}
public override string ToString()
{
return $"{Nome}: {Nascimento}";
}
}
public class TreinoFocadoB{
public List<DateTime> UltimoDia( List<DateTime> listaDatas){
List<DateTime> LastDay = new List<DateTime>();
foreach( DateTime data in listaDatas){
LastDay.Add(
data.AddMonths(1).AddDays(-data.Day)
);
}
return LastDay;
}
public DateTime MaiorDia ( List<DateTime> listaDatas){
DateTime Maior = DateTime.MinValue;
foreach( DateTime data in listaDatas ){
if( data > Maior){
Maior = data;
}
}
return Maior;
}
public List<Pessoa> Maiores18 ( List<Pessoa> listaPessoa){
List<Pessoa> ListPessoa = new List<Pessoa>();
foreach( Pessoa p in listaPessoa){
if( p.Nascimento <= DateTime.Now.AddYears(-18) ){
ListPessoa.Add(
p
);
}
}
return ListPessoa;
}
public bool TodosMais18 ( List<Pessoa> listPessoa){
bool Maior18 = true;
foreach( Pessoa p in listPessoa ){
if( p.Nascimento > DateTime.Now.AddYears(-18) ){
Maior18 = false;
}
}
return Maior18;
}
}
TreinoFocadoB T2 = new TreinoFocadoB();
List<DateTime> listaDatas = new List<DateTime>(){
new DateTime(2001,02,14),
new DateTime(1991,03,09),
new DateTime(2021,06,07),
new DateTime(2005,05,14)
};
Pessoa p1 = new Pessoa();
p1.Nascimento = listaDatas[0];
p1.Nome = "William Santos";
Pessoa p2 = new Pessoa();
p2.Nascimento = listaDatas[1];
p2.Nome = "Bruno Oliveira";
Pessoa p3 = new Pessoa();
p3.Nascimento = listaDatas[2];
p3.Nome = "Erik Alexandre";
Pessoa p4 = new Pessoa();
p4.Nascimento = listaDatas[3];
p4.Nome = "Daniel Assunção";
List<Pessoa> listaPessoa = new List<Pessoa>(){
p1, p2, p3, p4
};
List<DateTime> a2 = T2.UltimoDia(listaDatas);
Console.WriteLine($"-UltimoDia {string.Join(" - ", a2)}");
DateTime b2 = T2.MaiorDia(listaDatas);
Console.WriteLine($"-MaiorDia {string.Join(" - ", b2)}");
List<Pessoa> c3 = T2.Maiores18(listaPessoa);
Console.WriteLine($"-Maiores18 {string.Join(" - ", c3)}");
bool d3 = T2.TodosMais18(listaPessoa);
Console.WriteLine($"TodosMais18 {d3}");
```
## Treino Focado C
```csharp=
using System;
using System.Collections.Generic;
public class Pessoa{
public string Nome {get; set;}
public DateTime Nascimento {get; set;}
public string Cidade {get; set;}
}
public class TreinoFocadoC{
public string SepararLetras(string frase){
string FraseSeparada = string.Empty;
foreach (char Letra in frase)
{
FraseSeparada = FraseSeparada + Letra + '-';
}
return FraseSeparada;
}
public List<int> CodigoASCII (string frase){
List<int> ASCII = new List<int>();
foreach (char Letra in frase)
{
ASCII.Add(
Convert.ToInt32(Letra)
);
}
return ASCII;
}
public bool TodasVogais( string frase ){
bool TodasVogal = true;
frase = frase.ToLower();
foreach (char Letra in frase)
{
if( Letra != 'a' && Letra != 'e' && Letra != 'i' && Letra != 'o' && Letra != 'u' ){
TodasVogal = false;
}
}
return TodasVogal;
}
public string Alternar (Pessoa p){
string Alternado = string.Empty;
int Posição = 0;
foreach(char Letra in p.Nome){
if( Posição % 2 == 0){
Alternado = Alternado + Letra.ToString().ToUpper();
}
else{
Alternado = Alternado + Letra.ToString().ToLower();
}
Posição ++;
}
return Alternado;
}
public string Inverter( string frase){
string Invertido = string.Empty;
foreach (char Letra in frase)
{
Invertido = Letra + Invertido;
}
return Invertido;
}
public bool Palindromo (string frase){
bool Pali = true;
if( frase != Inverter(frase)){
Pali = false;
}
return Pali;
}
}
Pessoa p = new Pessoa();
p.Nome = "Daniel Assunção";
TreinoFocadoC T3 = new TreinoFocadoC();
string a3 = T3.SepararLetras("Dandinho Lindo");
Console.WriteLine($"-SepararLetras:{a3}");
List<int> b3 = T3.CodigoASCII("Bah Che");
Console.WriteLine($"-CodigoASCII: {string.Join(" - ", b3)}");
bool c3 = T3.TodasVogais("AAEE BB");
Console.WriteLine($"-TodasVogais: {c3}");
string d3 = T3.Alternar(p);
Console.WriteLine($"-Alternar: {d3}");
string e3 = T3.Inverter("Opa");
Console.WriteLine($"-Inverter: {e3}");
bool f3 = T3.Palindromo("osso");
Console.WriteLine($"-Palindromo: {f3}");
```