GRY-Online.pl --> Archiwum Forum

[c++] problem z zagnieżdzonymi pętlami for.

18.04.2006
16:08
smile
[1]

venn [ Junior ]

[c++] problem z zagnieżdzonymi pętlami for.

Potrzebuje szybkiej pomocy wiec zglosze sie rowniesz tutaj:

Jestem początkującym programistą i mimo ambicji nie mogę sobie poradzić z zagadnieniem dotyczącym zagnieżdżonej pętli for.
Mam napisać prosty program rysujący kwadrat o boku n z zakresu 1 - 20. O ile to zadanie wydaje się proste, to już wnętrze kwadratu wypełnione std::cout << " "; sprawia mi kłopot.

Do końca nie rozumiem też swojej własnej metody w rysowaniu wzorkiem kwadratu z wypełnieniem. Czy ktoś z Was mógłby być tak miły i krok po kroku wyjaśnić laikowi model postępowania ?

Pozdrawiam serdecznie,

A.

Mój program który ort! rysuje wypełniony kwadrat (docelowo ma być pusty w środku):

<spoiler>
#include <iostream>
#include <conio.h>
using namespace std;

int main () ‹

int x;

cout << "Wprowadz liczbe calkowita z zakresu 1-20: ";
cin >> x;

if ( x < 1 && x > 20 ) ‹
cout << "Koniec programu"; ›
else


for ( int i = 1; i <= x; i++) ‹
for ( int j = 1; j <= x; j++ ) ‹
cout << "*";

cout << endl;



getch();

return 0;


</spoiler>

18.04.2006
16:15
[2]

wysiu [ ]

Blah, co ja wygaduje.
Ok. zaraz sie poprawie.

18.04.2006
16:17
[3]

venn [ Junior ]

Forum słabo wyświetla kod cpp. Wysiu, docelowo to ma wygladac w ten sposob:

np dla x = 5:

xxxxx
x x
x x
x x
xxxxx

No to teraz ignoruje mi spacje. Mam nadzieję, że wiesz o co chodzi. Narazie to wyświetla wypełniony kwadrat.

18.04.2006
16:21
[4]

TeadyBeeR [ Legend ]

Musisz dodac dodatkowo if'y zeby sprawdzac czy i lub j nie rownaja sie 1 lub 20. Jezeli nie sa rowne 1 lub 20, to zamiast '*' trzeba wstawiac spacje ' '.

18.04.2006
16:21
[5]

Daro2k [ Pretorianin ]

Wystarczy jeden prosty warunek if(...)
Tak to powinno wyglądać (linie 16--19):

18.04.2006
16:23
[6]

wysiu [ ]

A, no rozumiem (sorry, ostatnio c++ ruszalem na studiach, skladnie zapomnialem).
Teraz prawidlowo wyswietla wypelniony kwadrat, prawda?

Do zrobienia niewypelnionego potrzebujesz
gdy i = 1 lub j = 1 lub i = x lub j = x
rysowac "*" (czyli na pierwszej i ostatniej poziomej i pionowej kresce).
W pozostalych przypadkach
rysowac " ".
I przeskok do nastepnej linii, tak jak jest.

18.04.2006
17:07
smile
[7]

venn [ Junior ]

Dzięki Wam wszystkim

© 2000-2024 GRY-OnLine S.A.