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

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
#3
3 Kommentare
vote_ok
von x9eleven (640 Punkte) - 18.06.2015 um 20:11 Uhr
Quellcode ausblenden C#-Code
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();
        }
    }
}

Kommentare:

eulerscheZhl

Punkte: 5230

110 Aufgaben
76 Lösungen
64 Kommentare

#1
19.06.2015 um 17:20 Uhr
Da fehlt aber eine Zeile in der Ausgabe.
Statt j < i muss es heißen j <= i
(Codezeile 20 und 38).
post_arrow
174 0

x9eleven

Punkte: 640


7 Lösungen
3 Kommentare

#2
22.06.2015 um 13:38 Uhr
hallo eulerscheZhl,

ok...
eine kleine Erklärung dazu wäre echt nett.

bin noch Anfänger.
post_arrow
175 0

eulerscheZhl

Punkte: 5230

110 Aufgaben
76 Lösungen
64 Kommentare

#3
22.06.2015 um 14:52 Uhr
Kein Problem :)

for(int j = 0; j < i; j++) wird für i=0 überhaupt nicht durchlaufen. Das hat zur Folge, dass [b]arrLines[0, 0][/b] 0 bleibt. In der Zeile darauf setzt du dann nur eine Zahl auf 1, da du wieder zu früh abbrichst. Somit verschiebst du das gesamte Dreieck eine Zeile nach unten. Siehe auch die Ausgabe: bei deinem Code wird ganz oben eine Leerzeile ausgegeben und erst dann kommt eine 1, mit meiner Änderung kommt direkt die 1.
post_arrow
176 0
Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2100584

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.