Baixe o app para aproveitar ainda mais
Prévia do material em texto
...epos\strategyLCL153797\strategyLCL153797\Program.cs 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 //uma classe deve suportar média aritmética e considerar como aprovados //os casos nos quais a média for superior a 5,0. // a outra deve usar média geométrica e considerar como aprovados os //casos em que a média for superior a 7,0. //Laís Costa de Lima - RA 153497 public class Program { private static void Main(string[] ) { Aritmetica calculo = new Aritmetica(); //Geometrica calculo = new Geometrica(); Disciplina d = new Disciplina(calculo); d.Nome = "Padroes de Desenvolvimento"; d.P1 = 10; d.P2 = 5; d.CalcularMedia(); Console.WriteLine("Media = {0} , Situacao = {1}", d.Media, d.Situacao); Console.ReadKey(); } } public class Disciplina { public IcalcMedia calcMedia { get; set; } public double Media { get; set; } public string Nome { get; set; } public double P1 { get; set; } public double P2 { get; set; } public string Situacao { get; set; } public Disciplina(IcalcMedia calcMedia) { this.calcMedia = calcMedia; } public void CalcularMedia() { Media = calcMedia.CalculaMedia(P1, P2); Situacao = calcMedia.Situacao(Media); } } public interface IcalcMedia { public double CalculaMedia(double a, double b); public string Situacao(double media); } public class Aritmetica : IcalcMedia { public double CalculaMedia(double a, double b) { return a + b * 2 / 3 ; } public string Situacao(double media) ...epos\strategyLCL153797\strategyLCL153797\Program.cs 2 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 { return media > 5 ? "Aprovado" : "Reprovado"; } } public class Geometrica : IcalcMedia { public double CalculaMedia(double a, double b) { return Math.Sqrt(a * b); } public string Situacao(double media) { return media > 7 ? "Aprovado" : "Reprovado"; } }
Compartilhar