---
# System prepended metadata

title: 'SESSION SIX: REPETIÇÃO FOR | LÓGICA'

---

# SESSION SIX: REPETIÇÃO FOR | LÓGICA
Author: Igor Lima Charles
N°: 18
Grade: INFOA


## TreinoFocadoA
```csharp=
using System;
using System.Collections.Generic;

public class Notas
{
	public int Nota1 {get; set;}
	public int Nota2 {get; set;}
	public int Nota3 {get; set;}
}

public class Retangulo
{
	public double Base   { get; set; }
	public double Altura { get; set; }
}


public class TreinoFocadoA
{
	public List<int> GerarSequencia (int fim)
	{
		List<int> L1 = new List<int>();
		for (int i = 0; i<= fim; i++)
		{
			L1.Add(i);
		}
		return L1;
	}
	
	public List<int> GerarSequencia(int inicio, int fim)
	{
		List<int> L2 = new List<int>();
		for (int i = inicio; i <= fim; i++)
		{
			L2.Add(i);
		}
		return L2;
	}
	
	public List<int> GerarSequenciaPares(int inicio, int fim)
	{
		List<int> L3 = new List<int>();
		for (int i = inicio; i <= fim; i++)
		{
			if (i % 2 == 0)
				L3.Add(i);
		}
		return L3;
	}
	
	public int SomarAte(int fim)
	{
		int soma = 0;
		for (int i = 1; i <= fim; i++)
		{
			soma += i;	
		}
		return soma;
	}
	
	public double CalcularMedias(List<double> notas)
	{
		double soma = 0;
		for (int i = 0; i < notas.Count; i++)
		{
			double n = notas[i];
			soma = soma + n;
		}
		
		double media = soma / notas.Count;
		return media;
	}
	
public List<double> CalcularMedias(List<Notas> notas)
{
 List<double> mediasAlunos = new List<double>();
		
  for (int i = 0; i < notas.Count; i++)
    {
	Notas notasAluno = notas[i];
	double media = (notasAluno.Nota1 +
    notasAluno.Nota2 + notasAluno.Nota3) / 3;
	mediasAlunos.Add(media);
	}

		return mediasAlunos;
	}
	
	public List<double> Quadrados (List<double> numeros)
	{
		List<double> quads = new List<double>();
		for (int i = 0; i < numeros.Count; i++)
		{
			double n = numeros[i];
			double q = Math.Pow(n, 2);
			
			quads.Add(q);
		}
		return quads;
	}
	
	private double AreaRetangulo(Retangulo r)
	{
		return r.Base * r.Altura;	
	}
	
	public List<double> AreaRetangulos(List<Retangulo> retangulos)
	{
		List<double> areas = new List<double>();
		for (int i = 0; i < retangulos.Count; i++)
		{
			Retangulo r = retangulos[i];
			double area = AreaRetangulo(r);
			
			areas.Add(area);
		}
		
		return areas;
	}
}

TreinoFocadoA A = new TreinoFocadoA();

List<int> x1 = A.GerarSequencia(0);
Console.WriteLine(string.Join("-", x1));

List<int> x2 = A.GerarSequencia(2, 4);
Console.WriteLine(string.Join("-", x2));

List<int> x3 = A.GerarSequenciaPares(2, 4);
Console.WriteLine(string.Join("-", x3));

int x4 = A.SomarAte(3);
Console.WriteLine(x4);

List<double> lx5 = new List<double>() { 4, 6, 8, 10 };
double x5 = A.CalcularMedias(lx5);
Console.WriteLine(x5);

Notas n1 = new Notas();
n1.Nota1 = 5;
n1.Nota2 = 5;
n1.Nota3 = 5;

Notas n2 = new Notas();
n2.Nota1 = 10;
n2.Nota2 = 10;
n2.Nota3 = 10;

Notas n3 = new Notas();
n3.Nota1 = 7;
n3.Nota2 = 8;
n3.Nota3 = 9;

List<Notas> notas = new List<Notas>() { n1, n2, n3 };

List<double> x6 = 
A.CalcularMedias(notas);
Console.WriteLine(string.Join("-", x6));

List<double> n7 = new List<double>() { 2,3,4,5 };
List<double> x7 = A.Quadrados(n7);
Console.WriteLine(string.Join("-", x7));

List<Retangulo> AreasRet = new List<Retangulo>() 
{
	new Retangulo() { Base = 1, Altura = 3 },
	new Retangulo() { Base = 5, Altura = 1 },
	new Retangulo() { Base = 8, Altura = 2 }
};

List<double> AreasRetangulo = A.AreaRetangulos(AreasRet);
Console.WriteLine(string.Join("-", AreasRetangulo));
```


## TreinoFocadoB
```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.ToShortDateString() + ")";
	}
}

public class TreinoFocadoB
{
 public List<DateTime> GerarSequencia(int qtd)
{
    List<DateTime> L1 = new List<DateTime>();
		
	DateTime inicio = DateTime.Now.Date;
	for (int i = 1; i <= qtd; i++)
	{
		L1.Add(inicio);
		inicio = inicio.AddDays(i);
	}
	return L1;
	}
	
public List<DateTime> GerarSequencia(int qtd, DateTime data)
{
 List<DateTime> L2 = new List<DateTime>();
		
 DateTime inicio = data;
  for (int i = 1; i <= qtd; i++)
	{
		L2.Add(inicio);
		inicio = inicio.AddDays(1);
		}
	 return L2;
	}
	
	public List<Pessoa> FiltrarMaiores18(List<Pessoa> pessoas)
	{
		List<Pessoa> PessoasFiltradas = new List<Pessoa>();
		
	for (int i = 0; i < pessoas.Count; i++)
	{
	Pessoa p = pessoas[i];
	if (p.Nascimento <= DateTime.Now.AddYears(-18))
		{
				PessoasFiltradas.Add(p);
		}
	}
		return PessoasFiltradas;
	}
	
	public bool TodosMaiores18(List<Pessoa> Pessoas)
	{
List<Pessoa> filtrados = new List<Pessoa>();
		
 bool TodosMaiores18 = true;
  for (int i = 0; i < Pessoas.Count; i++)
	{
	Pessoa p = Pessoas[i];
	 if (p.Nascimento > DateTime.Now.AddYears(-18))
			{
				TodosMaiores18 = false;
			}
	}
	return TodosMaiores18;
	}
}

TreinoFocadoB treinoB = new TreinoFocadoB();

List<DateTime> x1 = treinoB.GerarSequencia(10);
Console.WriteLine(string.Join(" - ", x1));

List<DateTime> x2 = treinoB.GerarSequencia(5, new DateTime(2021, 6, 27));
Console.WriteLine(string.Join(" - ", x2));

List<Pessoa> pessoas = new List<Pessoa>()
{
new Pessoa() { Nome = "Pessoa A", Nascimento = new DateTime(1987, 12, 01) },
new Pessoa() { Nome = "Pessoa B", Nascimento = new DateTime(1999, 11, 11) },
new Pessoa() { Nome = "Pessoa C", Nascimento = new DateTime(2004, 08, 12) },
new Pessoa() { Nome = "Pessoa D", Nascimento = new DateTime(2004, 08, 05) },
new Pessoa() { Nome = "Pessoa E", Nascimento = new DateTime(1975, 05, 20) }
};

List<Pessoa> x3 = treinoB.FiltrarMaiores18(pessoas);
Console.WriteLine(string.Join(" - ", x3));

bool x4 = treinoB.TodosMaiores18(pessoas);
Console.WriteLine(string.Join(" - ", x4));
```


# TreinoFocadoC
```sql=
using System;
using System.Collections.Generic;		


public class TreinoFocadoC
{
	public string SepararLetras(string frase)
	{
		string nova = string.Empty;
		for (int i = 0; i < frase.Length; i++)
		{
			char letra = frase[i];
			nova = nova + letra + "-";
		}
		return nova;
	}
	
public string Inverter(string Frase)
	{
	 string NovaFrase = string.Empty;
	 for (int i = 0; i < Frase.Length; i++)
	{
	 char Letra = Frase[i];
	 NovaFrase = Letra + NovaFrase;
	}
		return NovaFrase;
	}
	
public bool ApenasCoresPrimarias(List<string> Cores)
{
	bool todasPrimarias = true;
	for (int i = 0; i < Cores.Count; i++)
	{
		string Cor = Cores[i];
		if (Cor != "Azul" && Cor != "Vermelho" && Cor != "Amarelo")
			{
		todasPrimarias = false;
		break;
			}
		}
		return todasPrimarias;
	}
}

TreinoFocadoC treinoC = new TreinoFocadoC();

string x1 = treinoC.SepararLetras("Professor, perdoa as minhas lições atrasadas");
Console.WriteLine(x1);

string x2 = treinoC.Inverter("Ônibus");
Console.WriteLine(x2);

bool x3 = treinoC.ApenasCoresPrimarias(new List<string>() { "Amarelo", "Azul" });
Console.WriteLine(x3);
```