c++ nacrtaj baklavu za uneseni n broj

1

c++ nacrtaj baklavu za uneseni n broj

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

Napisano: 20 Dec 2020 17:00

moze pomoc oko ovog zadatka, kada korisnik unese n, treba da se nacrta baklava za taj uneseni broj
ovako bi to izgledalo, ako se unese n=3
tako nesta, nisam dobro ni nacrtao

dakle unose se / i \

Dopuna: 20 Dec 2020 18:04

ono sto sam ja uspio, jeste da za n nacrta toliko baklava, ali meni treba jedna baklava sa n linija

#include <iostream> using namespace std; int main() {    int n,i,j;    cout << "PROGRAM KOJI CRTA BAKLAVE ZA UNESENI BROJ n." << endl;    cout << "--------------------------------------------" << endl;    cout << "unesi n: ";    cin >> n;    cout << "" << endl;    for(i=0; i < n; i++)    {      cout << " /" << "\\" << endl;      cout << " \\" << "/" << endl;      cout << "" << endl;    }    return 0; }

to ovako izgleda kada se pokrene:


kako bi se ovo moglo rijesiti ??



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 06 Feb 2012
  • Poruke: 1872

Ne možeš u jednom prolasku petlje iscrtati sve.
Nacrtaj tu "baklavu" za n=3, na papiru sa kockicama i uoči pravilnost (nakon toga ćeš moći uraditi i za bilo koju veličinu).
Posmatraj te kockice na papiru kao matricu, recimo.



offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

Pokušao sam, ali ne mogu da shvatim koje sve uslove trebam da koristim...
for (i=0, i<2*n; i++) { for (j=0; j<2n; j++) { // ovdje idu 4 uvjeta } }

Jesam li dobro postavio ovo, i može pomoć oko ovih uvjeta, patim se već duže vremena, ne mogu da ih napišem nikako...

offline
  • Pridružio: 06 Feb 2012
  • Poruke: 1872

Napisano: 20 Dec 2020 21:26

Vanjskom for petljom ispisuješ vrste, a unutrašnjom kolone.
Mislim da ti je lakše sa dvije for petlje za vrste i dvije za kolone (naravno tad bi bili drugi uslovi), ali može i ovako.
Treba da vodiš računa o broju razmaka koje ćeš ispisivati. I taj broj mijenjaš u svakoj iteraciji petlje.
Pogledaj koliko razmaka imaš u prvoj polovini prve vrste u odnosu na n i kako se taj broj mijenja u svakoj sljedećoj vrsti. Da li u drugoj polovini iste vrste imaš isti broj razmaka?
Ima vjerovatno više načina, ali ja bih jednom for petljom ispisivao razmake za prvu polovinu vrste, pa jedan cout ispis znaka, zatim drugu for petlju za razmake druge polovine vrste, pa drugi znak. I onda ovo ponavljao za svaku vrstu.

Dopuna: 20 Dec 2020 21:44

A evo ti i gotova rješenja, ako ne uspiješ sam.
[Link mogu videti samo ulogovani korisnici]
ili
[Link mogu videti samo ulogovani korisnici]

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

Napisano: 20 Dec 2020 22:15

kada zamijenim * sa / i \ , onda dobijam ovo:





to je njihov kod, pokusavam da shvatim kako da ispravim ovu nepravilnost koja se desi

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

evo rijesio sam, hvala puno Sale.S na pomoci i savjetima, zadatak jeste samo za razmisliti, doduše meni je trebalo dosta da razmislim i da se napatim, ali to je nezaobilazni dio učenja, lijep pozdrav Smile
rezultat: program završen


*koristio sam dvije for petlje*

offline
  • Pridružio: 02 Sep 2003
  • Poruke: 4956

Napisi i resenje ako neko ko cita temu bude imao slican problem.

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

Pa smisao i jeste da se dođe samostalno do rješenja, da se na taj način uči ugniježdena petlja... Smile
Postavio je Sale.S dva prijemjera za rješavanje ovog problema slična, umjesto ovih "/" "\" samo su oni koristili * i # ... Smile

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

Moglo bi ovo i sa jednom petljom, kad bi C++ imao implementaciju za implode() (pretvara niz u string) i array_reverse() (menja raspored elemenata u nizu).

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14824
  • Gde živiš: Niš

Moglo bi i bez petlje, i to bi možda bilo i najelegantnije rešenje. Very Happy

Ko je trenutno na forumu
 

Ukupno su 855 korisnika na forumu :: 40 registrovanih, 6 sakrivenih i 809 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: acov34, Apok, belov, Ben Roj, ccoogg123, Dambi, dearg, Dimitrise93, dolinalima, FOX, Georgius, Griffon vulture, Hans Gajger, HogarStrashni, jalos, Jozo74, ljuba, marsovac 2, milanovic, Mskok, Nemanja.M, neutrino, OtacMakarije, panzerwaffe, pirke96, raketaš, repac, Rothmans, ruso, S2M, smerch, sspp, t.mile, Tila Painen, vlad the impaler, Vladovbl, volimpivuvolimrakiju, vuksa72, YugoSlav, Zvrk