Rysowanie kwadratu z przekątną

Wątek przeniesiony 2018-10-28 15:53 z C/C++ przez Patryk27.

0

Witam. Pomoże ktoś narysować taki kwadrat? title
W tym wypadku jego bok N = 6. (6 rzędów, 6 kolumn)
Póki co mam taki kod:

void square(int N)
{
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < i; j++) {
			cout << "X";
		}
		cout << "." << endl;
	}
}

I jego efekt to:
title

To, że efekt jest do góry nogami to mniejszy problem. Nie wiem jak wypełnić ten kwadrat kropkami.

Nie jest to żadne zadanie na ocenę na uczelnie! Mam sporo takich zadań z pętli, ale każde następne jest trudniejsze od tego. Myślę, że jak zrozumiem jak zrobić to zadanie, to z następnymi też jakoś dam radę.

3

No to powoli: zacznij od przygotowania programu, który wypisuje jednorodnie wypełniony kwadrat (np. samymi kropkami), podeślij go i będziemy kombinować dalej.

0

Póki co mam taki kod:

void square(int N)
{
    for (int i = 0; i < N; i++) {
        cout << "X";
        cout << "." << endl;
    }
}

wypisuje

X.
X.
X.
X.
X.

Co zrobić by było jak poniżej?

.
X.
XX.
XXX.
XXXX.
0

Takie coś mi wyszło:

void square(int N)
{
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < N; j++) {
			std::cout << "X";
		}
		std::cout << std::endl;
	}
}
```
Działa poprawnie np. dla N = 6:
![title](https://i.imgur.com/ZeCxTxh.png)
2

Ok, no to idziemy dalej: czym wyróżniają się docelowe . od X?
Gdybyś miał taki kwadrat narysować ręcznie, po czym byłbyś w stanie rozpoznać czy masz postawić w danym miejscu . czy X?

0

@Patryk27:

Myślę, że jest zależność, że dla rzędu a powinno być a-1 kropek. Natomiast dla kolumny b powinno być N-b kropek.

Ale za bardzo nie wiem jak to przełożyć na kod.

@enedil: nie rozumiem? Dokładnie to o co pytasz wkleiłem efekt w pierwszym poście.

1

Niepotrzebnie komplikujesz sprawę próbując koncentrować się na kwadracie jako całości (tj. zbiorze rzędów i kolumn).

Skupmy się na pojedynczym rzędzie (bo i rzędami jest wyświetlany kwadrat w Twoim kodzie) - mając rząd o numerze n (licząc od zera), będzie on zawierał n kropek i rozmiar_kwadratu - n iksów - tak czy nie?

0
Krzywy Kruk napisał(a):

@enedil: nie rozumiem? Dokładnie to o co pytasz wkleiłem efekt w pierwszym poście.

Chodzi o to że przejście z mojego rozwiązania do Twojego obecnego jest tym samym co przejście od Twojego obecnego to docelowego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.