---
# System prepended metadata

title: 'Session Seven: Repetição FOREACH | Fundamentos da Lógica'

---

# Session Seven: Repetição FOREACH | Fundamentos da Lógica
**Autor**: Vitório Trindade Santana
**Turma**: Informática C
**Número**: 50

[toc]

## Exercício 1 

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

class MainClass {
  public static void Main (string[] args) {
  
  List<int> q1 = new List<int>();
  q1.Add(8);
  q1.Add(9);
  q1.Add(11);
  q1.Add(5);

  List<int> q2 = new List<int>();
  q2.Add(4);
  q2.Add(3);
  q2.Add(2);

  List<double> q3 = new List<double>();
  q3.Add(4);
  q3.Add(16);
  q3.Add(121);

  List<double> q5 = new List<double>();
  q5.Add(7);
  q5.Add(5);
  q5.Add(9);

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

  Notas aln2 = new Notas();
  aln2.Nota1 = 5;
  aln2.Nota2 = 7;
  aln2.Nota3 = 6;

  Notas aln3 = new Notas();
  aln3.Nota1 = 8;
  aln3.Nota2 = 7;
  aln3.Nota3 = 6;

  List<Notas> q6 = new List<Notas>();
  q6.Add(aln1);
  q6.Add(aln2);
  q6.Add(aln3);

  Retangulo ret1 = new Retangulo();
  ret1.Altura = 2;
  ret1.Base = 5;

  Retangulo ret2 = new Retangulo();
  ret2.Altura = 5;
  ret2.Base = 3;

  Retangulo ret3 = new Retangulo();
  ret3.Altura = 8;
  ret3.Base = 6;

  List<Retangulo> q7 = new List<Retangulo>();
  q7.Add(ret1);
  q7.Add(ret2);
  q7.Add(ret3);

  TreinoFocadoA tfa = new TreinoFocadoA();

  int x1 = tfa.SomaImpares(q1);
  List<int> x2 = tfa.CalcularCubo(q2);
  List<double> x3 = tfa.CalcularRaiz(q3);
  int x4 = tfa.MaiorNumero(q1);
  double x5 = tfa.Media(q5);
  List<double> x6 = tfa.CalcularMedias(q6);
  List<double> x8 = tfa.AreaRetangulos(q7);
  
  Console.WriteLine(x1);
  Console.WriteLine(string.Join("-", x2));
  Console.WriteLine(string.Join("-", x3));
  Console.WriteLine(x4);
  Console.WriteLine(x5);
  Console.WriteLine(string.Join("-", x6));
  Console.WriteLine(string.Join("-", x8));
  
    // Resultados:
    //25
    //64-27-8
    //2-4-11
    //11
    //7
    //5-6-7
    //10-15-48
  }
}


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

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

public class TreinoFocadoA 
{
  public int SomaImpares (List<int> numeros)
  {
    int soma = 0;

    foreach (int item in numeros)
    {
      if (item % 2 != 0)
          soma = soma + item;
    }

    return soma;
  }

  public List<int> CalcularCubo (List<int> numeros)
  {
    List<int> q2 = new List<int>();
    int calc = 0;
    foreach (int nmr in numeros)
    {
      double pot = Math.Pow(nmr, 3);
      calc = Convert.ToInt32(pot);
      q2.Add(calc);
    }

    return q2;
  }

  public List<double> CalcularRaiz (List<double> numeros)
  {
    List<double> q3 = new List<double>();
    double calc = 0;
    foreach (int nmr in numeros)
    {
      calc = Math.Sqrt(nmr);
      q3.Add(calc);
    }

    return q3;
  }
  
  public int MaiorNumero (List<int> numeros)
  {
    int maiorNmr = 0;
    foreach (int nmr in numeros)
    {
      if (nmr > maiorNmr)
          maiorNmr = nmr;
    }
    return maiorNmr;
  }

  public double Media (List<double> notas)
  {
    double soma = 0;
    foreach (int nta in notas)
    {
      soma += nta;
    }
    double calcMedia = soma / notas.Count;
    return calcMedia;
  }

  public List<double> CalcularMedias (List<Notas> notas)
  {
    List<double> q6 = new List<double>();
    foreach (Notas nta in notas)
    {
      double media = (nta.Nota1 + nta.Nota2 + nta.Nota3) / notas.Count;
      q6.Add(media);
    }

    return q6;
  }

  private double AreaRetangulo (Retangulo retangulo)
  {
    double area = retangulo.Base * retangulo.Altura;
    return area;
  }

  public List<double> AreaRetangulos (List<Retangulo> retangulos)
  {
    List<double> rets = new List<double>();
    foreach(Retangulo ret in retangulos)
    {
      double calretan = AreaRetangulo(ret);
      rets.Add(calretan);
    }

    return rets;
  }
}
```

## Exercício 2 

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

class MainClass {
  public static void Main (string[] args) {
  DateTime dta1 = new DateTime(2003, 12, 01);
  DateTime dta2 = new DateTime(2006, 6, 12);
  DateTime dta3 = new DateTime(2000, 05, 8);

  List<DateTime> lista1 = new List<DateTime>();
  lista1.Add(dta1);
  lista1.Add(dta2);
  lista1.Add(dta3);

  Pessoa pss1 = new Pessoa();
  pss1.Nascimento =  new DateTime(2004, 12, 26);
  pss1.Nome = "Antônio Pedro";

  Pessoa pss2 = new Pessoa();
  pss2.Nascimento =  new DateTime(2000, 5, 8);
  pss2.Nome = "Joao Carlos";

  Pessoa pss3 = new Pessoa();
  pss3.Nascimento =  new DateTime(1998, 8, 26);
  pss3.Nome = "Kaique Ferreira";

  List<Pessoa> lista2 = new List<Pessoa>();
  lista2.Add(pss1);
  lista2.Add(pss2);
  lista2.Add(pss3);

  TreinoFocadoB tfb = new TreinoFocadoB();
  
  List<DateTime> x1 = tfb.UltimoDia(lista1);
  DateTime x2 = tfb.MaiorData(lista1);
  List<Pessoa> x3 = tfb.FiltrarMaiores18(lista2); 
  bool x4 = tfb.TodosMaiores18(lista2);
  
  Console.WriteLine(string.Join(" - ", x1));
  Console.WriteLine(x2.ToString("dd/MM/yyyy"));
  Console.WriteLine(string.Join(" - ", x3));
  Console.WriteLine(x4);
  
    // Resultados:
    //12/31/2003 12:00:00 AM - 6/30/2006 12:00:00 AM - 5/31/2000 12:00:00 AM
    //12/06/2006
    //Joao Carlos(08/05/2000) - Kaique Ferreira(26/08/1998)
    //False
  }
}



public class Pessoa
{
  public string Nome {get;set;}
  public DateTime Nascimento {get;set;}

  public override string ToString ()
  {
    return  Nome  + "(" + Nascimento.ToString("dd/MM/yyyy") + ")";
  }
}



public class TreinoFocadoB
{
  public List<DateTime> UltimoDia (List<DateTime> dias)
  {
    List<DateTime> q1 = new List<DateTime>();
    foreach (DateTime dta in dias)
    {
      DateTime data = new DateTime(dta.Year, dta.Month, 1);
      DateTime calc = data.AddMonths(1).AddDays(-1);
      q1.Add(calc);
    }

    return q1;
  }

  public DateTime MaiorData (List<DateTime> dias)
  {
    DateTime maiorData = DateTime.MinValue;
    foreach (DateTime dta in dias)
    {
      if (dta > maiorData)
          maiorData = dta;
    }

    return maiorData;
  }

  public List<Pessoa> FiltrarMaiores18 (List<Pessoa> pessoas)
  {
    List<Pessoa> q3 = new List<Pessoa>();
    DateTime conf = DateTime.Now.AddYears(-18);

     foreach (Pessoa data in pessoas)
     {
       if (data.Nascimento <= conf)
           q3.Add(data);
     }

     return q3;
  }

  public bool TodosMaiores18 (List<Pessoa> pessoas)
  {
    bool cnf = true;
    DateTime conf = DateTime.Now.AddYears(-18);
    foreach (Pessoa pss in pessoas)
    {
      if (pss.Nascimento > conf)
      {
        cnf = false;
      }
    }

    return cnf;
  }
}
```

## Exercício 3 

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

class MainClass {
  public static void Main (string[] args) {

  TreinoFocadoC tfc = new TreinoFocadoC();

  string x1 = tfc.SepararLetras("O corre corre da cidade grande, tanta gente passa estou só, o vento sopra pelo campo e traz uma lembraça sua estou só");
  bool x3 = tfc.TodasVogais("ok i pull up");
  string x5 = tfc.Inverter("sla mano to sem ideia");
  bool x6 = tfc.Palindromo("Natan");
  
  Console.WriteLine(x1);
  Console.WriteLine(x3);
  Console.WriteLine(x5);
  Console.WriteLine(x6);
  
    // Resultados:
    //O- -c-o-r-r-e- -c-o-r-r-e- -d-a- -c-i-d-a-d-e- -g-r-a-n-d-e-,- -t-a-n-t-a- -g-e-n-t-e- -p-a-s-s-a- -e-s-t-o-u- -s-ó-,- -o- -v-e-n-t-o- -s-o-p-r-a- -p-e-l-o- -c-a-m-p-o- -e- -t-r-a-z- -u-m-a- -l-e-m-b-r-a-ç-a- -s-u-a- -e-s-t-o-u- -s-ó-
    //False
    //aiedi mes ot onam als
    //True
  }
}


public class Pessoa
{
  public string Nome {get;set;}
  public DateTime Nascimento {get;set;}
  public string Cidade {get;set;}

  public override string ToString ()
  {
    return  Nome  + "(" + Nascimento.ToString("dd/MM/yyyy") + ")";
  }
}



public class TreinoFocadoC
{
  public string SepararLetras (string frase)
  {
    string ltrSep = "";
    foreach (Char letra in frase)
    {
      ltrSep += letra + "-";
    }

    return ltrSep;
  }

  public bool TodasVogais (string frase)
  {
    bool cnst = true;
    foreach (Char yo in frase)
    {
      if ((yo.Equals('b') || yo.Equals('c') || yo.Equals('d') || yo.Equals('f') || yo.Equals('g') || yo.Equals('h') || yo.Equals('j') || yo.Equals('k') || yo.Equals('l') || yo.Equals('m') || yo.Equals('n') || yo.Equals('p') || yo.Equals('q') || yo.Equals('r') || yo.Equals('s') || yo.Equals('t') || yo.Equals('v') || yo.Equals('w') || yo.Equals('x') || yo.Equals('y') ||  yo.Equals('z')) == true)
      {
        cnst = false;
      }
    }
    return cnst;
  }

  public string Inverter (string frase)
  {
    string invert = "";
    foreach (char letra in frase)
    {
      invert = letra + invert;
    }

    return invert;
   }

   public bool Palindromo (string frase)
   {
     bool conf = false;
     string invert = "";
     frase = frase.ToLower();
     
     foreach (char letra in frase)
     {
      invert = letra + invert;
      if (invert.Equals(frase))
          conf = true;
     }

     return conf;
   }
}
```

## Feito após a data de entrega

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

class MainClass {
  public static void Main (string[] args) {

  TreinoFocadoC tfc = new TreinoFocadoC();

  string x1 = tfc.SepararLetras("O corre corre da cidade grande, tanta gente passa estou só, o vento sopra pelo campo e traz uma lembraça sua estou só");
  List<int> x2 = tfc.CodigoASCII("Vitório");
  bool x3 = tfc.TodasVogais("ok i pull up");
  string x5 = tfc.Inverter("sla mano to sem ideia");
  bool x6 = tfc.Palindromo("Natan");
  Console.WriteLine(x1);
  Console.WriteLine(string.Join(",", x2));
  Console.WriteLine(x3);
  Console.WriteLine(x5);
  Console.WriteLine(x6);
  
    // Resultados:
    //O- -c-o-r-r-e- -c-o-r-r-e- -d-a- -c-i-d-a-d-e- -g-r-a-n-d-e-,- -t-a-n-t-a- -g-e-n-t-e- -p-a-s-s-a- -e-s-t-o-u- -s-ó-,- -o- -v-e-n-t-o- -s-o-p-r-a- -p-e-l-o- -c-a-m-p-o- -e- -t-r-a-z- -u-m-a- -l-e-m-b-r-a-ç-a- -s-u-a- -e-s-t-o-u- -s-ó-
    //86,105,116,243,114,105,111
    //False
    //aiedi mes ot onam als
    //True
  }
}


public class Pessoa
{
  public string Nome {get;set;}
  public DateTime Nascimento {get;set;}
  public string Cidade {get;set;}

  public override string ToString ()
  {
    return  Nome  + "(" + Nascimento.ToString("dd/MM/yyyy") + ")";
  }
}



public class TreinoFocadoC
{
  public string SepararLetras (string frase)
  {
    string ltrSep = "";
    foreach (Char letra in frase)
    {
      ltrSep += letra + "-";
    }

    return ltrSep;
  }

  public List<int> CodigoASCII (string frase)
  {
    List<int> q2 = new List<int>();
    int ascii = 0;

    foreach (Char letra in frase)
    {
      ascii = Convert.ToInt32(letra);
      q2.Add(ascii);
    }

    return q2;
  }

  public bool TodasVogais (string frase)
  {
    bool cnst = true;
    foreach (Char yo in frase)
    {
      if ((yo.Equals('b') || yo.Equals('c') || yo.Equals('d') || yo.Equals('f') || yo.Equals('g') || yo.Equals('h') || yo.Equals('j') || yo.Equals('k') || yo.Equals('l') || yo.Equals('m') || yo.Equals('n') || yo.Equals('p') || yo.Equals('q') || yo.Equals('r') || yo.Equals('s') || yo.Equals('t') || yo.Equals('v') || yo.Equals('w') || yo.Equals('x') || yo.Equals('y') ||  yo.Equals('z')) == true)
      {
        cnst = false;
      }
    }
    return cnst;
  }

  public string Inverter (string frase)
  {
    string invert = "";
    foreach (char letra in frase)
    {
      invert = letra + invert;
    }

    return invert;
   }

   public bool Palindromo (string frase)
   {
     bool conf = false;
     string invert = "";
	   frase = frase.ToLower();
     
     foreach (char letra in frase)
     {
      invert = letra + invert;
      if (invert.Equals(frase))
          conf = true;
     }

     return conf;
   }
}
```