» »

C++ pomoč

C++ pomoč

hexor ::

Potreboval bi pomoč z eno nalogo in sicer imam strukturo ki vsebuje x in y element ki predstavlja točko v koor. sistemu.Program naj naključno izbere 10 točk v polje struktur,do tega koraka sem prišel:


struct tocka
{
double x;
double y;
};
int main()
{
tocka T;


tocka polje[10];


tocka polje[0]=rand();
tocka polje[1]=rand();
tocka polje[2]=rand();
tocka polje[3]=rand();
tocka polje[4]=rand();
tocka polje[5]=rand();
tocka polje[6]=rand();
tocka polje[7]=rand();
tocka polje[8]=rand();
tocka polje[9]=rand();

return 0;

}

Zdaj pa ne razumem naloge naprej ki narekuje da si predstavljam kot sprehod od prve do zadnje točke-primer sprehod od prve do druge točke in naredim pot dolgo kakor je razdalja med tema dvema točkama,potem pojdem naprej na tretjo točko in prištejem to razdaljo in nadaljujem z seštevanjem vseh razdalj.Program mora na koncu izpisati še celotno pot.

Za pomoč se Vam zahvaljujem!

Ktj ::

Namesto da za vsako polje pišeš uporabi for zanko.
for(int i = 0; i<10; i++) polje[i].element = rand();


Ko imaš neko spremenljivko deklarerano se tip ne piše spredaj.
tocka polje[10];
tocka polje[0]=rand();// tocka se ne piše več ampak samo polje[0];....da ne omenjam naslednje napake 

V tvoji kodi ti prirejaš kazalcu ki kaže na strukturo (naj me kdo popravi če se motim) neko vrednost kar je hudo narobe. Ti moraš elementu tej neko vrednost x in y.
tocka polje[0]=rand(); // narobe
polje[0].elemet = rand();//razumeš princip?

Za računanje poti pa predvidevam da ti je jasen pitagorov izrek. Gledaš samo razliko po x in y ter ju geometrično sešteješ. če ti pa ni jasno si pa nariši na list papirja in poglej kako bi to rešil po pešpoti!

edit: typo

Zgodovina sprememb…

  • spremenil: Ktj ()

hexor ::

za vsako točko x2+y2?

ERGY ::

polje[i].x
polje[i].y

hexor ::

hmmm??

Tutankhamun ::

struct Tocka
{
	double x;
	double y;
};

double RazdaljaMedTockama(const Tocka &p1, const Tocka &p2)
{
	double dx, dy;
	double dst;

	dx = (p1.x) - (p2.x);
	dy = (p1.y) - (p2.y);

	dst = (dx*dx) + (dy*dy);
	dst = sqrt(dst);

	return dst;
}

int main(int argc, char* argv[])
{
	const int VELIKOST = 10;
	srand((unsigned)time( NULL ));

	double pot, celotna_pot = 0;

	Tocka polje[VELIKOST];

	// nastavitev tock
	for (int i = 0; i < VELIKOST; i++) {
		polje[i].x = rand() % 10;
		polje[i].y = rand() % 10;
		cout << "T" << i << "{" << polje[i].x << ", " << polje[i].y << "}" << endl;
	}

	// razdalja med posameznimi tockami
	for (int i = 1; i < VELIKOST; i++) {
		pot = RazdaljaMedTockama(polje[i-1], polje[i]);
		celotna_pot += pot;
		cout << "Razdalja med tocko " << (i-1) << " in tocko " << i << " je " << pot << endl;
		cout << "Vsota vseh do sedaj razdalj je " << celotna_pot << endl << endl;
	}

	return 0;
}

Primer izpisa:

T0{7, 4}
T1{4, 1}
T2{3, 0}
T3{6, 7}
T4{3, 8}
T5{4, 3}
T6{1, 1}
T7{3, 8}
T8{9, 7}
T9{1, 2}
Razdalja med tocko 0 in tocko 1 je 4.24264
Vsota vseh do sedaj razdalj je 4.24264

Razdalja med tocko 1 in tocko 2 je 1.41421
Vsota vseh do sedaj razdalj je 5.65685

Razdalja med tocko 2 in tocko 3 je 7.61577
Vsota vseh do sedaj razdalj je 13.2726

Razdalja med tocko 3 in tocko 4 je 3.16228
Vsota vseh do sedaj razdalj je 16.4349

Razdalja med tocko 4 in tocko 5 je 5.09902
Vsota vseh do sedaj razdalj je 21.5339

Razdalja med tocko 5 in tocko 6 je 3.60555
Vsota vseh do sedaj razdalj je 25.1395

Razdalja med tocko 6 in tocko 7 je 7.28011
Vsota vseh do sedaj razdalj je 32.4196

Razdalja med tocko 7 in tocko 8 je 6.08276
Vsota vseh do sedaj razdalj je 38.5023

Razdalja med tocko 8 in tocko 9 je 9.43398
Vsota vseh do sedaj razdalj je 47.9363
AMD Phenom QUAD 9950 Black Edition, 8GB


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

c++ rabim pomoč konstuktorji

Oddelek: Programiranje
61105 (800) Snowflake2
»

php vprašanje.

Oddelek: Programiranje
162268 (1512) fx
»

največkrat pojavljeni element v tabeli

Oddelek: Programiranje
181958 (1333) pac1
»

[C++] Generiranje naključnih števil tipa double

Oddelek: Programiranje
81860 (1769) mn
»

Programiranje C++

Oddelek: Šola
51612 (1418) bi0s

Več podobnih tem