Zum Inhalt springen

VB.Net Zahlenpyramide in Console


Empfohlene Beiträge

Geschrieben

Hallo, bin ziemlich neu in vb.net und hab hier etwas, dass ich irgendwie nicht richtig zusammenbekomme..

also ein konsolenprojekt, wo steht, geben sie die hoehe der pyramide ein.. bei eingabe 5 sollte z. B. kommen..

5

44

333

2222

11111

(formatierung stimmt jetzt nicht ganz..)

ich bekomme gerade mal ne pyramide hin, wenn ich gar keine hoehe eingeben lasse sondern nur das in einem array mache.. und dann ist die pyramide aber auch nur eine halbe..

Sub Main()


        'Dim zahl As Integer

        Dim zaehler As String = "54321"

        Dim i As Integer

        Dim j As Integer

        Dim Ergebnis As String = ""



        'Console.WriteLine("Geben sie die Hoehe der Pyramide ein")

        'zahl = Console.ReadLine()



        ' While zaehler < zahl

        'zaehler = zaehler + 1

        ' äußere Schleife

        For i = 0 To 4

            ' innere Schleife

            For j = 0 To i

                Ergebnis += zaehler.Chars(i)

            Next j

            Ergebnis += vbNewLine

        Next i



        ' End While


        Console.WriteLine(Ergebnis)


    End Sub

hab die erweiterungen auskommentiert.. der aktuelle code gibt hald eine halbe pyramide bis 5 aus..

Geschrieben (bearbeitet)

Das giebt ein Dreieck, meinst du das mit "halber Pramide" ?

Das mit deinem zaehler String macht jetzt auch nicht unbedingt Sinn,

wenn du in ner Schleife durch gehst, for i = 1 to x ....

Dann machste um an deinen Char ("1") zu kommen einfach nen Typecast von dem Integer 1 auf den String "1".

Wenn du da jetzt ne wirkliche Pyramide, im anschaulichen Sinne Pyramide, ausgeben willst dann nimm dir am besten bei sowas erst nen Blatt Papier und zeichne dir mal auf was du haben möchtest.

also, Gleichschencklige Pyramide :


    5

   444

  33333

 2222222

111111111

Das wäre imo deine angestrebte Pyramide.

Wenn du da durchzählst :

Zeile | Anzahl Zeichen

1 | 1

2 | 3

3 | 5

4 | 7

5 | 9

So, du willst ja die in dem Fall 5 oben stehn haben, das heist, du denkst hier nicht Pyramide, du denkst hier Rechteck. Du willst ja die 5 in der Mitte der Pyramide stehen haben, nicht am linken Rand.

Die Anzahl Zeichen die du als breite brauchst kannst du dir recht einfach herleiten und errechnen :

Zeile 1 ist 1 zeichen, Zeile 2 sind 3, Zeile 3 sind 5

1+2 x i, für i (0....4) für den Wert 5

Das wäre deine "Formel" (ich mach hier ganz bestimmt keine Screenshots von nem summenzeichen).

Also für 5 wäre dass dann 1+ 2x4 = 9 Zeichen breite.

Das ist das erste was du für die innere Schleife brauchst.

Also, position der 5 in dieser Pyramide.

Erste Zeile, also willst du von 9 Zeichen, 8 Leerzeichen, und 1x die 5, und du brauchst die Position

9 (das hast du vorher errechnet) - 1 zeichen das ich 'füllen' möchte, = 8 Leerzeichen. 8/2 = 4, d.h. 4 leerzeichen, 1x 5, 4 leerzeichen.

2. Zeile

9 - 3 (jetzt kommen die 4er) = 6

6/2 = 3, 3x Leerzeichen 3x 4, 3x Leerzeichen

usw

Ich will jetzt nicht weiter gehn, weil sonst kann ich dir gleich den Quellcode schicken, aber ich denk das sollte ein kräftiger schubs in die Richtung sein, ohne das ich dir aufs brot schmier wie du die Logik in nen Algorythmus giest.

kleine Anmerkung, die Leerzeichen rechts deiner Zahlenreihe, die kannst du im String natürlich weglassen, es ging mir eher um das "Stell dir das ding als Rechteck vor, und geh wie mit einem Rechteck damit um, denk nicht an Dreieck oder Pyramide" als Denkansatz

Viel Spass, und sei froh das du kein Taschenrechner schreiben musst :P

Gruß

Sven

Bearbeitet von streffin

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...