Problem z kodem

0

Witam
Napisałam program który wyświetla znak X w pionie i poziome jednak nie wiem jak przekształcić program by wyświetlał ten znak na ukos np:
X
X
X itd.
Proszę o udzielenia jakiejś wskazówki oto kod jaki chcę przerobić :

import java.io.*;
public class gwiazdki3a {

public static void main(String[]args )
{
    int a = 0;
    int i;
    System.out.println("Podaj ilość rzędów gwiazdek");
    a = readInt();

    for( a=0; a<5; a++)
    {
        for( i=1; i<=a; i++)
        {
        System.out.println(" X ");
        }
        System.out.println(" X ");
    }
}

public static int readInt() {

try {

     return Integer.parseInt(new BufferedReader(

             new InputStreamReader(System.in)

             ).readLine().trim()

     );

} catch (Exception e) {return -1;}

}
}
Proszę o pomoc bądź też jakąś wskazówkę. Z góry dziękuję :)

0

Zastanów się, jakbyś to rysowała na kartce.
W pierwszym wierszu stawiasz X
W drugim wierszu robisz jedno pole odstepu na stepnie stawiasz X
W trzecim wierszu robisz 2 pola odstepu nastepnie stawiasz X
....
W n-tym wierszu robisz-1 pol odstepu nastepnie stawiasz X

0

Tak na kartce jest łatwiej, ale mój problem polega na tym w jaki sposób zapisać przesunięcie X o daną odległość. Wiem, że ma to być związane z kolejnością wierszy
pierwszy zero odstępu;
drugi jeden odstęp;
itd. Tylko w jaki sposób zmienić kod aby uzyskać ten rezultat, utworzyć nową pętle, która będzie przesuwać X w zależności od jego położenia.

0
for (int i = 0; i<numer_wiersza; i++) {
  System.out.print(' '); 
}
System.out.println('X');

to Ci wypisze jeden wiersz o dlugosci: numer_wiersza-1

0
String prefix="";
for(int i=0;i<granica;i++)
{
    System.out.println(prefix+"X");
    prefix+=" ";
}

Poniższy fragment Twojego kodu jest bez sensu

                a = readInt();

                for( a=0; a<5; a++)

Wpierw czytasz zmienną a, a potem nadajesz jej wartość 0.

0
bo napisał(a)
String prefix="";
for(int i=0;i<granica;i++)
{
System.out.println(prefix+"X");
prefix+=" ";
}

Poniższy fragment Twojego kodu jest bez sensu


a = readInt();
            for( a=0; a<5; a++)

> Wpierw czytasz zmienną <b>a</b>, a potem nadajesz jej wartość 0.

To były moje próby w jaki sposób można by zapisać kolejny wiersz, wiem że jest to trochę bez sensu a raczej bardzo bez sensu :)
Co to jest prefix ?
0

Nazwa zmiennej, jak Ci się nie podoba, to zmień np. na nieLubiePoniedzialku

0

prefix to jest zmienna która jak sama nazwa wskazuje przechowuje początek czegoś, w tym wypadku spacje. Przeanalizuj dokładnie kod. Widać że najpierw to jest 1 spacja, potem 2 itd.

0
[losowa nazwa] napisał(a)
for (int i = 0; i<numer_wiersza; i++) {
System.out.print(' '); 
}
System.out.println('X');

to Ci wypisze jeden wiersz o dlugosci: numer_wiersza-1

THX działa :)
Pozdrawiam :)

0

A jeszcze jedno pytanie żeby rysowały się w odwrotną stronę należy zmienić znak?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0