# Session Six: Repetição FOR
**Autor**: Elias de Freitas Cavalcante
**Número**: 12
**Turma**: INFO C
## Exercicio 1
**Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo
a especificação das situações a serem resolvidas:**
**▪ Realize a lógica para implementar uma função que gere uma sequência de valores
iniciando do zero até um valor final recebido por parâmetro.**
Ex. (5) => {0,1,2,3,4,5}, (3) => {0,1,2,3}, (0) => { }
**▪ Realize a lógica para implementar uma função que gere uma sequência de valores a
partir de um número inicial e final.**
Ex. (2,4) => {2,3,4}, (1, 2) => {1,2}, (0,0) => { 0 }
**▪ Realize a lógica para implementar uma função que gere uma sequência de valores
pares a partir de um número inicial e final.**
Ex. (2,7) => {2,4,6}, (1, 2) => { 2 }, (0,0) => { 0 }
**▪ Realize a lógica para implementar uma função que some os números naturais de 0
até um número final informado.**
Ex. (5) => 15, (3) => 6
**▪ Realize a lógica para implementar uma função que calcule a média a partir de uma
lista de notas.**
Ex. ({5,5,5}) => 5, ({6,8}) => 7, ({4,6,8, 10}) => 7
**▪ Realize a lógica para implementar uma função que calcule a média para cada aluno a
partir de uma lista de Notas.**
**▪ Realize a lógica para implementar uma função que calcule a potência ao quadrado
para cada número em uma lista.**
Ex. ({2,3,4}) => {4,9,16}
**▪ Realize a lógica para implementar uma função que calcule a área do retângulo.**
**▪ Realize a lógica para implementar uma função que calcule a área do retângulo pra
cada Retângulo da lista.**
```charp=
using System.Collections.Generic;
public class Notas
{
public double Nota { get; set; }
public double Notaas { get; set; }
public double Notaaass { 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> l = new List<int>();
for (int i = 0; i <= fim; i++)
{
l.Add(i);
}
return l;
}
public List<int> GerarSequencia(int inicio, int fim)
{
List<int> l = new List<int>();
for (int i = inicio; i <= fim; i++)
{
l.Add(i);
}
return l;
}
public List<int> GerarSequenciaPares(int inicio, int fim)
{
List<int> l = new List<int>();
for (int i = inicio; i <= fim; i++)
{
if (i % 2 == 0)
l.Add(i);
}
return l;
}
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.Nota + NotasAluno.Notaas + NotasAluno.Notaaass) / 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 treinoA = new TreinoFocadoA();
List<int> x1 = treinoA.GerarSequencia(0);
Console.WriteLine(string.Join("-", x1));
List<int> x2 = treinoA.GerarSequencia(2, 4);
Console.WriteLine(string.Join("-", x2));
List<int> x3 = treinoA.GerarSequenciaPares(2, 4);
Console.WriteLine(string.Join("-", x3));
int x4 = treinoA.SomarAte(3);
Console.WriteLine(x4);
List<double> lx5 = new List<double>() { 4, 6, 8, 10 };
double x5 = treinoA.Calcularmedias(lx5);
Console.WriteLine(x5);
Notas N1 = new Notas();
N1.Nota = 5;
N1.Notaas = 5;
N1.Notaaass = 5;
Notas N2 = new Notas();
N2.Nota = 10;
N2.Notaas = 8;
N2.Notaaass = 6;
Notas N3 = new Notas();
N3.Nota = 2;
N3.Notaas = 4;
N3.Notaaass = 0;
List<Notas> notas = new List<Notas>() { N1, N2, N3 };
List<double> x6 = treinoA.Calcularmedias(notas);
Console.WriteLine(string.Join("-", x6));
List<double> n7 = new List<double>() { 2,3,4,5 };
List<double> x7 = treinoA.Quadrados(n7);
Console.WriteLine(string.Join("-", x7));
List<Retangulo> retangs = new List<Retangulo>()
{
new Retangulo() { Base = 5, Altura = 4 },
new Retangulo() { Base = 3, Altura = 3 },
new Retangulo() { Base = 10, Altura = 2 }
};
List<double> areas = treinoA.AreaRetangulos(retangs);
Console.WriteLine(string.Join("-", areas));
```
## Exercicio 2
**Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a**
**especificação das situações a serem resolvidas:**
**▪ Realize a lógica para implementar uma função que gere uma sequência de datas de um
tamanho informado por parâmetro, iniciando da data atual.**
Ex. (2) => { [14/06/2021], [15/06/2021] }
**▪ Realize a lógica para implementar uma função que gere uma sequência de datas de um tamanho informado por parâmetro, iniciando de uma data também informada.**
Ex. (2, [14/06/2021]) => { [14/06/2021], [15/06/2021] }
**▪ Realize a lógica para implementar uma função que gere uma sequência de datas com
dias pares de um tamanho informado por parâmetro, iniciando de uma data também
informada.**
Ex. (2, [14/06/2021]) => { [14/06/2021], [16/06/2021] }
**▪ Realize a lógica para implementar uma função que identifique o signo de uma paessoa baseado em uma data.**
Ex. ([22/10/1989]) => "Libra", ([23/10/1989]) => "Escorpião“
**▪ Realize a lógica para implementar uma função que identifique os signos para cada data de uma lista.**
Ex. ({[22/10/1989], [23/10/1989]}) => { "Libra", "Escorpião“ }
**▪ Realize a lógica para implementar uma função que retorne uma lista com as pessoas
maiores de 18 anos a partir de uma lista de pessoas.**
**▪ Realize a lógica para implementar uma função que retorne se todos de uma lista de
pessoas são maiores de 18 anos.**
```charp=
```
## Exercicio 3
**Crie a(s) classe(s) representando a abstração de função e/ou dados ao lado. Abaixo a especificação das situações a serem resolvidas:**
**▪ Realize a lógica para implementar uma função que separe cada caractere de uma frase por um hífen. Ex. ("Olá, tudo bem?") => "O-l-á- t-u-d-o- -b-e-m-?-“**
**▪ Realize a lógica para implementar uma função que inverte os caracteres de uma frase.**
Ex. ("Olá, tudo bem?") => "?meb odut ,álO“
**▪ Realize a lógica para implementar uma função que verifica se todos caracteres de uma frase são vogais.**
Ex. ("Olá") => false, ("Eaee") => true
**▪ Realize a lógica para implementar uma função que retorne o último nome a partir de um nome completo. Ex. ("Bruno de Oliveira") => "Oliveira“.**
**▪ Realize a lógica para implementar uma função que retorne os últimos nomes a partir de uma lista de nomes completos.**
Ex. (["Bruno de Oliveira", "João Silva"]) => ["Oliveira", "Silva"]
**▪ Realize a lógica para implementar uma função que verifique se todas as cores em uma lista são primárias. Ex. (["Azul", "Amarelo", "Vermelho"]) => true.**
**▪ Realize a lógica para implementar uma função que verifique se uma senha é forte. Para ser forte, ela precisa ter pelo menos 2 caracteres especiais, 2 números e 8 digitos.**
Ex. ("senha@123") => false, ("s&nha@87") => true, ("aaaa@@00") => true
```charp=
```