예제 #1
0
 public static Bruch operator -(Bruch a, Bruch b)
 {
     return(Bruch.Subtraktion(a, b));
 }
예제 #2
0
        public static int Main(string[] args)
        {
            //System.Threading.Thread t1 = new System.Threading.Thread(new System.Threading.ThreadStart(GdiThread1));
            //t1.Start();
            //System.Threading.Thread t2 = new System.Threading.Thread(new System.Threading.ThreadStart(GdiThread2));
            //t2.Start();
            System.Threading.Thread t3 = new System.Threading.Thread(new System.Threading.ThreadStart(gdiThread3));
            t3.Start();
            Console.Clear();
            Console.Beep(2000, 50);
            System.Threading.Thread.Sleep(30);
            Console.Beep(1000, 50);
            Console.WriteLine("Beispielprogramm für simple Bruch- und Vektorbibliothek");
            Console.WriteLine("-------------------------------------------------------");
            Console.WriteLine();
            Console.WriteLine("Bereitstellen der Brüche:");
            Console.WriteLine();
            Bruch a = new Bruch(1, 2);
            Bruch b = new Bruch(-1, 4);
            Bruch c = new Bruch(3, 10);

            Console.WriteLine("a = " + a + " b = " + b + " c = " + c);
            Console.WriteLine();
            Console.WriteLine("Rechnen mit Brüchen:");
            Bruch d = a + b;

            Console.WriteLine("a + b = " + d);
            Console.WriteLine("Das ganze gekürzt (also durch den ggT geteilt): " + Bruch.Kuerzen(a + b));
            Bruch e = a * c;

            Console.WriteLine("a * c = " + e);
            Console.WriteLine();
            Console.WriteLine("Bereitstellen der Vektoren:");
            Console.WriteLine();
            Vektor A = new Vektor(1, 0, 0);
            Vektor B = new Vektor(0, 2, 0);
            Vektor C = new Vektor(0, 0, 3);

            Console.WriteLine("A = " + A + " B = " + B + " C = " + C);
            Console.WriteLine("(a + b) * A = " + ((a + b) * A));
            Console.WriteLine();
            Console.WriteLine("(a * b) * (A*B)   = " + (a * b) * (A * B));
            // Schön wäre zumindest das Vektorprodukt auch noch mit überlademem Operator zu
            // steuern, leider hat das * schon die höchste Priorität bei den operatorn
            // Alternativ müsste man einen Parser schreiben
            Console.WriteLine("(a * b) * (AxB)   = " + (a * b) * Vektor.Vektorprodukt(A, B));
            Console.WriteLine("(a * b) * (BxA)   = " + (a * b) * Vektor.Vektorprodukt(B, A));
            Console.WriteLine("(a * b) * <A B C> = " + (a * b) * Vektor.Spatprodukt(A, B, C));
            Console.WriteLine("Winkel Zwischen A und B: " + Vektor.Zwischenwinkel(A, B) + "°");
            Console.WriteLine();
            Console.WriteLine("Bitte eine Taste drücken!");
            Console.ReadKey();
            Console.Clear();
            //Vektor.zeichneVektor(new Vektor(50,20,0),new Vektor(3,3,0));
            for (int i = 1; i < 17; i++)
            {
                Console.WriteLine(i + " " + primFaktoren.istPrim(i));
            }

            Console.WriteLine("----------------------------------------");
            primFaktoren pf = new primFaktoren();

            primFaktoren.primfaktoren(1230);
            Console.WriteLine("----------------------------------------");
            pf.gekuerzteTeiler(2 * 2 * 3 * 3 * 3 * 7);
            Console.WriteLine("----------------------------------------");
            Console.ReadKey();


            return(0);
        }
예제 #3
0
 public static Bruch Potenz(Bruch a, long b)
 {
     return(new Bruch(Exponent(a.Zaehler, b), Exponent(a.Nenner, b)));
 }
예제 #4
0
 public static Bruch operator +(Bruch a, Bruch b)
 {
     return(Bruch.Addition(a, b));
 }
예제 #5
0
 public static Bruch Multiplikation(Bruch a, Bruch b)
 {
     return(new Bruch(a.Zaehler * b.Zaehler, a.Nenner * b.Nenner));
 }
예제 #6
0
 public static Bruch Division(Bruch a, Bruch b)
 {
     return(new Bruch(a.Zaehler * b.Nenner, a.Nenner * b.Zaehler));
 }
예제 #7
0
 public static Bruch Subtraktion(Bruch a, Bruch b)
 {
     return(new Bruch((a.Zaehler * b.Nenner) - (b.Zaehler * a.Nenner), a.Nenner * b.Nenner));
 }
예제 #8
0
 public static Bruch Addition(Bruch a, Bruch b)
 {
     return(new Bruch((a.Zaehler * b.Nenner) + (b.Zaehler * a.Nenner), a.Nenner * b.Nenner));
 }
예제 #9
0
//TODO Bruch hoch Bruch
//		public static Bruch Potenz(Bruch a, Bruch b)
//		{
//			return new Bruch(a.Zaehler*b.Zaehler, a.Nenner*b.Nenner);
//		}


        public static Bruch Kuerzen(Bruch a)
        {
            long ggt = ggT(a.Zaehler, a.Nenner);

            return(new Bruch(a.Zaehler / ggt, a.Nenner / ggt));
        }
예제 #10
0
 public static Bruch operator /(Bruch a, Bruch b)
 {
     return(Bruch.Division(a, b));
 }
예제 #11
0
 public static Bruch operator *(Bruch a, Bruch b)
 {
     return(Bruch.Multiplikation(a, b));
 }