C# :: Aufgabe #101 :: Lösung #5

6 Lösungen Lösungen öffentlich
#101

Erstellung Pascalsches Dreieck

Anfänger - C# von BlackBird321 - 04.06.2015 um 22:43 Uhr
Schreibe ein Programm, welches das Pascalsches Dreieckwiedergibt.
Das Programm soll die Anzahl der Reihen entgegennehmen und dementsprechend widergeben (Nur halt ohne die Punkte :o)).

Beispiel für 5 Reihen:
....1
...11
..121
.1331
14641
#5
vote_ok
von syzon (410 Punkte) - 12.07.2015 um 00:10 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections;

namespace Pascalsches_Dreieck
{
    class Program
    {
        static void Main(string[] args)
        {
            //Einlesen einer Ganzzahl
            int anzahlZeilen;
            Console.WriteLine("Bitte die Anzahl der Reihen eingeben: ");
            while (!int.TryParse(Console.ReadLine(), out anzahlZeilen))
            Console.WriteLine("Bitte eine Ganzzahl eingeben!");

            //Erstellung + Aufbau Array
            ArrayList values = new ArrayList();
            for (int i =0; i < anzahlZeilen; i++)
            {
                values.AddRange(reihenBerechnung(i));
            }
            
            //Ausgabe
            int counterAnzahlZahlen = 1;
            int counterPositionArray = 0;
            for (int i = 0; i < anzahlZeilen; i++)
            {
                string Line = "";
                //Leerzeichen vor Zahlenreihe
                for (int z = 0; z < anzahlZeilen - i; z++)
                {
                    Line = Line + "  ";
                }
                for (int j = 0; j < counterAnzahlZahlen; j++)
                {
                    Line = Line + Convert.ToString(values[counterPositionArray]) + "   ";
                    counterPositionArray++;
                }
                Console.WriteLine(Line);
                counterAnzahlZahlen++;
            }
            Console.ReadLine();
        }
        
        //Berechnung einer Reihe
        private static ArrayList reihenBerechnung(int reihe)
        {
            ArrayList eineReihe = new ArrayList();
            for (int i = 0; i < reihe + 1; i++)
            {
                eineReihe.Add(BinomialkoeffizientBerechnen(reihe, i));
            }
            return eineReihe;
        }

        //Binomialkoeffizient berechnen
        private static int BinomialkoeffizientBerechnen(int reihe, int spaltenindex)
        {
            if (reihe == 0 && spaltenindex == 0)
            {
                return 1;
            }
            try
            {
                return fak(reihe) / (fak(spaltenindex) * fak((reihe - spaltenindex)));
            }
            catch (Exception)
            {
                return 1;
            }
        }
        
        //Fakultät berechnen
        private static int fak(int zahl)
        {
            for (int i = (zahl - 1); i > 0; i--)
            {
                zahl = zahl * i;
            }
            return zahl;
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2100585

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.