C# :: Aufgabe #101
6 Lösungen

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
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
Lösungen:

using System; namespace trainYourProgrammer { class MainClass { static void Main(string[] args) { Console.Write ("Anzahl der Reihen: "); int lines = int.Parse (Console.ReadLine ()); int[,] triangle = new int[lines, lines]; for (int n = 0; n < lines; n++) { triangle [n, 0] = 1; for (int k = 1; k <= n; k++) { triangle [n, k] = triangle [n - 1, k - 1] + triangle [n - 1, k]; } } int max = triangle [lines - 1, lines / 2]; int len = max.ToString ().Length + 2; for (int n = 0; n < lines; n++) { Console.Write (new string (' ', (lines - n - 1) * len / 2)); for (int k = 0; k <= n; k++) { string s = triangle [n, k].ToString (); Console.Write (new string (' ', (len + 1 - s.Length) / 2) + s + new string (' ', (len - s.Length) / 2)); } Console.WriteLine (); } } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace PascalschesDreieck { class Program { static void Main(string[] args) { Console.WriteLine("Geben Sie die Anzahl der Reihen an"); int reihen = Convert.ToInt16(Console.ReadLine()); List<int[]> dreieck = DreieckErstellen(reihen); WriteToConsole(dreieck); Console.ReadKey(); } static List<int[]> DreieckErstellen(int reihen) { List<int[]> dreieck = new List<int[]>(); dreieck.Add(new int[] { 1 }); if (reihen > 1) { int[] lastEntry = new int[] { 1, 1 }; dreieck.Add(lastEntry); for (int i = 3; i <= reihen; i++) { int[] entry = new int[i]; for (int n = 0; n < i; n++) { if (n - 1 < 0) entry[n] = 1; else if (n + 1 > i - 1) entry[n] = 1; else entry[n] = lastEntry[n - 1] + lastEntry[n]; } lastEntry = entry; dreieck.Add(entry); } } return dreieck; } static void WriteToConsole(List<int[]> dreieck) { for (int i = 0; i < dreieck.Count; i++) { foreach (int wert in dreieck[i]) Console.Write(wert); Console.Write("\n"); } } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class pasDreieck { static void printPasc(int lines) { // Initialisieren eines 2-dimensionalen Arrays mit der Variablen lines als Inhalt // int[,] arrLines = new int[lines,lines]; // Berechnung des pascalschen Dreiecks // for(int i = 0; i < lines; i++) { for(int j = 0; j < i; j++) { if(j == 0 || j == i) { arrLines[i, j] = 1; } else { arrLines[i, j] = arrLines[i - 1, j - 1] + arrLines[i - 1, j]; } } } // Ausgabe // for (int i = 0; i < lines; i++) { for(int j = 0; j < i; j++) { Console.Write(arrLines[i, j] + " "); } Console.WriteLine(); } } static void Main(string[] args) { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// Der Variablen eingabe wird ein String mit der Funktion Console.ReadLine() übergeben und durch Convert.ToInt32 in ein int umgewandelt////////////////////////////////////// /// int lines = Convert.ToInt32(Console.ReadLine()); printPasc(lines); Console.ReadKey(); } } }
Hab ne Weile gebraucht, war aber eine echt tolle Aufgabe.
Dankeschön!
C#-Code
Dankeschön!

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Pascalsches_Dreieck { class Program { static void Main(string[] args) { //Fordere den Benutzer auf die Zeilenanzahl einzugeben Console.WriteLine("Bitte geben Sie die Zeilenanzahl an:"); //Speichere die Zeilenanzahl und erstelle einen Array für das Dreieck int lines = Convert.ToInt32(Console.ReadLine()); int[,] arr = new int[lines, lines]; //Berechne das Dreieck for (int i = 0; i < lines; i++) //Zeile { arr[i, i] = 1; arr[i, 0] = 1; for (int j = 1; j < i; j++) //Spalte { arr[i, j] = arr[i - 1, j - 1] + arr[i - 1, j]; } } Console.WriteLine(""); //Gebe das Dreieck aus! for (int i = 0; i < lines; i++) { for (int j = 0; j < lines; j++) { if (arr[i, j] != 0) { Console.Write(arr[i, j] + " "); } else { Console.Write(" "); } } Console.WriteLine(""); } Console.Read(); } } }

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; } } }

do { Console.Write("geben Sie bitte die Anzahl der Reihen von Pascalsches Reieck: "); string Anzahl = Console.ReadLine(); string folgeString = ""; int n; if (!int.TryParse(Anzahl, out n)) { Console.WriteLine("Beim Umwandeln ist der Fehler aufgetreten"); } else { int[,] folge = new int[n, n]; // Dreieck mit nur Zahlen erstellen // ohne Form int erste; int zweite; for (erste = 0; erste < n; erste++) { for ( zweite = 0; zweite <= erste; zweite++) { if (zweite == 0 || zweite == erste) { folge[erste, zweite] = 1; } else { folge[erste, zweite] = folge[erste - 1, zweite - 1] + folge[erste - 1, zweite]; } } } for (int i = 0; i < n; i++) { Console.Write(new string(' ', n-1-i )); for (int j = 0; j <= i; j++) { Console.Write(folge[i, j] + " "); } Console.WriteLine(); } } Console.ReadLine(); } while (true);