static string ToStringWithIntegerPart(MyFrac frac1) { long whole_part = frac1.nom / frac1.denom; long remainder = frac1.nom % frac1.denom; return(String.Format("({0}+{1}/{2})", whole_part, remainder, frac1.denom)); }
static MyFrac GetRGR115LeftSum(int n) { MyFrac result = new MyFrac(1, 1); for (int i = 2; i <= n; i++) { result = Multiply(result, Minus(new MyFrac(1, 1), new MyFrac(1, i * i))); } return(result); }
static void Main(string[] args) { MyFrac frac1 = new MyFrac(5, 40); MyFrac frac2 = new MyFrac(-3, 6); MyFrac frac3 = new MyFrac(45, 6); Console.Write("Введiть n: "); int n = int.Parse(Console.ReadLine()); MyFrac.Show(frac1, frac2, frac3, n); }
static MyFrac GetRGR113LeftSum(int n) { MyFrac res = new MyFrac(1, 1 * 3); for (int i = 2; i <= n; i++) { MyFrac denres = new MyFrac(1, (2 * i - 1) * (2 * i + 1)); res = Plus(res, denres); } return(res); }
public static void Show(MyFrac frac1, MyFrac frac2, MyFrac frac3, int n) { Console.WriteLine("Перший дрiб: " + frac1); Console.WriteLine("Другий дрiб: " + frac2); Console.WriteLine("Третiй дрiб: " + frac3); Console.WriteLine("Цiла частина третього дробу: " + ToStringWithIntegerPart(frac3)); Console.WriteLine("Десятковий запис першого дробу: " + DoubleValue(frac1)); Console.WriteLine("Cума двох перших дробiв: " + Plus(frac1, frac2)); Console.WriteLine("Рiзниця двох перших дробiв: " + Minus(frac1, frac2)); Console.WriteLine("Добуток двох перших дробiв: " + Multiply(frac1, frac2)); Console.WriteLine("Частка двох перших дробiв: " + Divide(frac1, frac2)); Console.WriteLine("(1–1/4)*(1–1/9)*(1–1/16)*...*(1–1/" + n + "^2) = " + GetRGR115LeftSum(n)); Console.WriteLine("1/(1*3)+1/(3*5)+1/(5*7)+...+1/((2*" + n + "–1)*(2*" + n + "+1)) = " + GetRGR113LeftSum(n)); }
static MyFrac Multiply(MyFrac frac1, MyFrac frac2) { return(new MyFrac(frac1.nom * frac2.nom, frac1.denom * frac2.denom)); }
static MyFrac Minus(MyFrac frac1, MyFrac frac2) { return(new MyFrac(frac1.nom * frac2.denom - frac1.denom * frac2.nom, frac1.denom * frac2.denom)); }
static MyFrac Plus(MyFrac frac1, MyFrac frac2) { return(new MyFrac(frac1.nom * frac2.denom + frac1.denom * frac2.nom, frac1.denom * frac2.denom)); }
static double DoubleValue(MyFrac frac1) { double decimal_part = (double)frac1.nom / frac1.denom; return(decimal_part); }
static MyFrac Divide(MyFrac frac1, MyFrac frac2) { return(new MyFrac(frac1.nom * frac2.denom, frac1.denom * frac2.nom)); }