[ Okram_marko @ 24.11.2006. 11:13 ] @
Pozdravljam

Trebam napraviti program koji ce ispisivati "bubu" (neke karaktere koji predstavljaju baju, npr :*:) na ekranu cmd ekrana. Program treba biti u C++-u naravno.
Jos se nisam susretao sa ispisom x,y koordinata. Baja bi se trebala kretati dijagonalno, nije bitno odakle ce poceti.

Ako kako mozete pomoci bio bih vam zahvalan.

Poz.
[ X Files @ 24.11.2006. 13:35 ] @
Sva pitanja vezana za zadatke se postavljaju u forumima C/C++ za početnike.

Citat:

Trebam napraviti program koji ce ispisivati "bubu" (neke karaktere koji predstavljaju
baju, npr :*:)

Dakle, buba se sastoji od više karaktera?

Citat:

na ekranu cmd ekrana.

Konzola dakle.

Citat:

Jos se nisam susretao sa ispisom x,y koordinata.

Pogledaj funkciju: gotoxy()
...koja se nalazi u #include <conio.h>

Ona pozicionira kursor za sledeći ispis teksta, na primer sa: printf("*").

Primer:
http://www.programmershelp.co.uk/c/gotoxy.txt

Citat:

Baja bi se trebala kretati dijagonalno, nije bitno odakle ce poceti.

Ovde će jedna obična petlja biti sasvim ok (sa nekom korekcijom jedne od osa,
da bi baja ravnomerno stigla u ugao)

Citat:

Ako kako mozete pomoci bio bih vam zahvalan.

Pravila ovog foruma su da se brišu svi zahtevi za domaćim zadacima u kojima autor barem
nešto ne pokuša. Zato, evo ti za početak:

1. nartaj u svesci na kvadratiće tu baju (tj kako želiš da izgleda)
2. zabeleži koordinate tačaka od kojih je sastavljena baja u obliku:

T1(nesto, nesto)
T2(nesto, nesto)
T3(nesto, nesto)
T4(nesto, nesto)

itd... (naravno, centriraj baju u ugao i daj nam te koordinate)

Onda će ti trebati funkcija koja BRIŠE baju (da ne bi ostajao trag) i CRTA baju ,
otprilike ovako:
Code:

void IscrtajBaju(int x, int y, char znak)
{
   gotoxy( x+NESTO, y+NESTO_DRUGO );
   printf( znak);

   gotoxy( x+NESTO_TRECE, y+NESTO_CETVRTO );
   printf( znak);

   gotoxy( x+NESTO_PETO, y+NESTO_SESTO );
   printf( znak);

   // ... dok se ne dobije baja
}


Ove konstante NESTO_? su parovi onih tačaka: T1(NESTO, NESTO_DRUGO), T2(NESTO_TRECE, NESTO_CETVRTO), ...

Jedan položaj baje se iscrtava sa:
Code:

IscrtajBaju( x, y, " " );
IscrtajBaju( x, y, "*" );

U praksi, trebaće još provera da li se stiglo do ćoška. Tu će trebati odrediti X i Y koordinata ekrana
i MAX_X i MAX_Y figure, ali otom potom.

[ Okram_marko @ 24.11.2006. 20:23 ] @
kordinate bi trebale izgledati ovako nekako: jedan razmak pa novi red, zatim 2 razmaka pa novi red.

prva je 1,1 (x,y) druga je 2,2 .... itd.

evo recimo ovako:

Code:

#include <iostream>
using namespace std;

void main()
{

   system("pause");
}


Nemam ideje kako bi trebao izgledati program. Ako moze primjercic..

Evo napravio sam ovo:

Code:

#include <iostream>
using namespace std;
void main()
{
    system("color 4f");
int d,m,g,p,i;
bool uslov;
cout<<"Ako unesete trenutni datum, broj dana unaprijed, program ce ispisati trenutni\ndatum uvecan za broj dana koji ste ranije unijeli.\n*******************************************************\n";
cout<<"Unesite dane od 1 do 31, mjesece od 1 do 12, te godinu\nkoja mora biti veca od 2005.\n";
cout<<"Unesite trenutni datum : ";
cin>>d;
cout<<"Unesite trenutni mjesec: ";
cin>>m;
cout<<"Unesite trenutnu godinu: ";
cin>>g;

{
    if (g<2005)
        cout<<"Nije moguce unijeti godinu koja je prosla!!\n";
    else {
        cout<<"Koliko dana dodajete?: ";
cin>>p;


for (i=1; i<=p; i++)
{
if (i==p)
uslov=true;
else
uslov=false;

switch (m)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if ((d>31)||(d<1))
{
cout<<"Pogresan unos - mjesec moze da ima 1,2,3..31 dan !!!\n";
i=p;
}

else {
if (d<31)
d=d+1;
else
if (m<12)
{
m=m+1;
d=1;
}
else
{
g=g+1;
d=1;
m=1;
};

}
break;


case 2:
if (!(g%4==0)||(g%100==0)) /*ovdje je bilo (g%4!=0)*/
{
if ((d<1)||(d>28))
{
cout<<"Pogresan unos dana !!!\n";
i=p;
}
else
{
if (d<28)
{
d=d+1;
}
else
{ d=1;
m=m+1;
}

}

}
else
{
if ((d<1)||(d>29))
{
cout<<"Pogresan unos dana!!!\n";
i=p;
}
else
{
if (d<29)
d=d+1;
else
{
d=1;
m=m+1;
}


}
};
break;

case 4: case 6: case 9: case 11:
if ((d<1)||(d>30))
{
cout<<"Pogresan unos dana!!!\n";
i=p;
}
else
{
if (d<30)
d=d+1;
else
{
m=m+1;
d=1;
}

};

break;


default: cout<<"Nema "<<m<<". mjeseca!!!\n"; i=p; break;



} /*kraj switch iskaza*/


if (uslov==true)
cout<<"*******************************************************\n"<<d<<"-"<<m<<"-"<<g<<" Ovo je datum uvecan za "<<p<<" dan/a."<<endl;

} /*kraj for petlje */
}
}
cout<<"Pritisnite bilo koju tipku!!\n";
system("pause");
system("cls");
system("color 0e");
cout<<"\n\n\n\n\n\n\n\n\n\n\n\t\t\t   HAVALA NA KORISTENJU!! \n\n\n\n\n\n\n\n\n\n\n\n\n ";

system ("pause");

}


ali za ovu baju stvarno ne znam. Najteze do sada sto sam napravio je ovo gore.

PS: Baja nije za domaci vec kao neki zadatak/izazov.

Hm.. zanima me ovo ali nikako da dokućim.

Ako možeš samo navesti primjer bio bih zahvalan. Još nisam radio sa pozicijama niti drugim bibliotekama osim iostream i math.d tako da...