Program kwadrat w kwadracie

0

Witam wszystkich! Mam do napisania w Dev-C++ program kwadrat kwadrat lecz nie wiem jak sie mam do tego zabrac :-( musze napisać program który będzie rysował kwadraty np. z gwiazdek. podana liczba bedzie sugerowac dlugosc boku kwadratu, a nastepne kwadraty beda znajdowac sie wewnatrz tego kwadratu oddzielone jednym polem pustym. np dla 8

++++++++

  •  +
    
  • ++++ +
  • ++++ +
  •  +
    

++++++++

POMOCY :-(

0

A czy to nie miało być coś takiego ?

++++++++++
+        +
+ ++++++ +
+ +    + +
+ + ++ + +
+ + ++ + +
+ +    + +
+ ++++++ +
+        +
++++++++++
0

tak miało wyglądać, ale widocznie jakiś błąd wystąpił gdy pisałem ;) niestety nie wiem jak mam to zrobić ;/

0

Pokaz co juz masz po pierwsze.

0

nic jeszcze nie mam, bo nie wiem kompletnie jak sie mam do tego zabrac, radzono mi abym wyświetlił ciąg znaków, w następnej linii 1 znak, ciąg pustych i 1 znak. W następnej 1 znak, pusty, ciąg znaków, pusty, 1 znak. W następnej... i tak dalej, zamienic na pętle i gotowe. Ale kompletnie nie wiem jak ja mam sie do tego zabrać

0

Widzę, że pierwszy dzień na forum witamy, a co do problemu to musisz się przypatrzeć ort! ort! kolejnymi liniami zauważamy, że obrazek jest symetryczny, a więc najpierw sobie rysujemy górę a potem w odwrotnej kolejności dół no chyba, że jest liczba nieparzysta to miedzy te dwie operacje wrzucamy jeszcze jednego if'a który nam rysuje środkową linię albo coś w tym stylu. Ok zmniejszyliśmy sobie problem do tego jak wygenerować tą połówkę i teraz dalej analizujemy zauważmy, że naprzemiennie występują po sobie linie:

  • górna krawędź jakiegoś kwadratu i krawędzie go otaczających
  • tylko krawędzie kwadratów
    Kolejna sprawa dodajemy nowy kwadrat co drugą linię więc numerując wiersze od 0 możemy łatwo obliczyć ilość kwadratów w tym miejscu (dzielenie całkowite):
    ilosc_kwadratów = (numer_lini / 2) + 1
    ja to już mamy to połowa zadania zrobiona bo jeśli jesteśmy w danej linii i w niej zaczyna się nowy kwadrat czyli w przykładzie @[losowa nazwa] linie 0, 2, 4 to rysujemy sobie tak:
    ile kwadratów tyle słupków oddzielonych od siebie spacjami potem odpowiednia ilosc x'ów i dalej słupki oddzielone spacjami
    myślę że z tymi obliczeniami sobie poradzisz co do ort! linii to po prostu zamiast tych x'ów wstawiasz spacje w tej środkowej części i tyle

jak czegoś nie rozumiesz pisz na gg jak jestem dostępny albo tutaj myślę, że jak to moje rozwiązanie zrozumiałeś to już sobie dasz radę to zakodzić a jak nie to się nawet za to nie bierz tylko wracaj do podstaw bo to raczej jest prosty programik, <ort>jak byś</ort> do końca tygodnia nie napisał to ci mogę w weekend szybko naklepać, albo pomóc w napisaniu, ale na gg musisz pisać.

0

z pomocą internetu zrobiłem coś takiego

program kwadrat kwadrat;
uses crt;
var i,j,bok: integer;

begin
clrscr;
write("Podaj rozmiar boku kwadratu:");
readln(bok);

{rysowanie gornego boku}
for i:=1 to bok do
write("*");
writeln;

{rysowanie lewego boku, odpowiedniej ilosci spacji i prawego boku}
for i:=1 to bok-2 do
begin
write("");
for j:=1 to bok-2 do
write(" ");
writeln("
");
end;

{rysowanie dolnego boku}
for i:=1 to bok do
write("*");

readln;
end.

i to niby miało rysować tylko kwadrat ale jak się okazało to nie działa, ponieważ podobno jest to napisane w pascalu, zbytnio nie wiem, a ja mam to do napisania w Dev-C++ , jeżeli tak jak się deklarowałeś mogłbyś mi jakoś pomóc to będę bardzo wdzięczny ;))

0

miałem nie odpisywać nic, ale wiesz.. jeżeli nie odróżniasz C++ od Pascala, to współczuje Twojej polonistce, bo pewnie jej po portugalsku wypracowania piszesz :/

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