» »

programiranje C

programiranje C

matey19 ::

Napišite program za delo s točkami realne ravnine.

1) Deklarirajte strukturo tocka, za hranjenje točk realne ravnine (x in y koordinata).

2) Deklarirajte tabelo tocke za hranjenje podatkov o 100 točkah in spremenljivko, v kateri hranite dejansko število elementov tabele.

3) Napiši funkcijo char meni(), ki izpiše besedilo

Izberite:
0 … koncaj program
1 … preberi točke
2 … zapiši točke
3 … izpiši najmanjši pravokotnik

in iz tipkovnice bere uporabnikovo izbiro, dokler ta ne pritisne številke 0, 1, 2 ali 3. Prebrani znak naj vrne kot rezultat.

4) Napišite funkcijo float velikost(tocka P), ki vrne velikost točke (dolžino vektorja) P; uporabite Pitagorovo pravilo, po katerem je velikost točke P(x,y) enaka x2+y2 .

5) V funkciji main() napišite zanko, v kateri kličete funkcijo meni() in glede na rezultat, ki ga ta funkcija vrne, naredite:

* '0': končajte z zanko,
* '1': kličite funkcijo preberi(),
* '2': kličite funkcijo zapisi(),
* '3': kličite funkcijo pravokotnik().

6) Napišite funkcijo void preberi(), ki najprej iz datoteke tocke.txt prebere n (število točk), nato prebere n točk v tabelo.

Primer vhodne datoteke tocke.txt:

6
1 1
2 2
2 -2
-1 -1
-2 -1
-2 2

7) Napišite funkcijo void zapisi(), ki v izhodno datoteko tockeV.txt zapiše podatke o vseh točkah; prva vrstica naj vsebuje število vseh točk, vse ostale vrstice pa naj bodo oblike

x y velikost

Primer izhodne datoteke tockeV.txt (pri vhodni datoteki tocke.txt, kot je prikazana zgoraj):

6
1 1 1.41
2 2 2.82
2 -2 2.82
-1 -1 1.41
-2 -1 2.24
-2 2 2.82

8) Napišite funkcijo void pravokotnik(), ki na zaslon izpiše spodnje levo in zgornje desno krajišče najmanjšega pravokotnika, ki vsebuje vse točke tabele tocke.
Primer izpisa (pri vhodni datoteki tocke.txt, kot je prikazana zgoraj):

Najmanjši pravokotnik: ((-2,-2), (2,2))
Diplomirani inženir "lenarjenja"

mile ::

tvoj podpis

Diplomirani inženir "lenarjenja"

je kar realen....

bozjak ::

hmm saj bi ti napisal rešitve, ampak glede na to da ne moreš niti ene kratke prošnje napisat... Nobena od zgornjih nalog ni tok težka, da je nebi bil sposoben rešiti z malo googlanja, ampak če je vse kar si pripravljen storiti v te smeri, da besedila dobesedno copy pastaš na nek forum, potem menim, da si moje (naše) pomoči niti slučajno ne zaslužiš.

Lp
http://upor.blogec.si
http://bozjak.deviantart.com

Tutankhamun ::

Tko neki sm napisu :P. Še funkcijo ki bere iz datoteke boš mogu implementirat. Pa tko morš še testirat, js nevem če to dela tko kot more....

struct TOCKA
{
	int X;
	int Y;
};

TOCKA tocke [100];
int count = 0;


int meni ()
{
	int c;
	while (true)
	{
		printf ("Izberite:\n");
		printf ("0 koncaj program\n");
		printf ("1 preberi tocke\n");
		printf ("2 zapisi tocke\n");
		printf ("3 izpisi najmanjsi pravokotnik\n");

		scanf ("%u", &c);

		if (c >= 0 || c <= 3)
			return c;
	}

}

float velikost (TOCKA p)
{
	return sqrt ((p.X * p.X) + (p.Y * p.Y));
}

void preberi ()
{
	FILE *file;
	file = fopen ("izpis.txt", "w");

	// TODO... preberi datoteko

	fclose (file);
}

void zapisi ()
{
	FILE *file;
	file = fopen ("izpis.txt", "w");

	if (count == 0) return;

	fprintf (file, "%u", count);

	for (int i = 0; i < count; i++)
		fprintf (file, "%u %u %d", tocke[i].X, tocke[i].Y, velikost (tocke[i]));

	fclose (file);
}

void pravokotnik ()
{
	TOCKA LS, DZ;

	if (!count) return;

	LS.X = tocke[0].X; LS.Y = tocke[0].Y;
	DZ.X = tocke[0].X; DZ.Y = tocke[0].Y;

	for (int i = 1; i < count; i++)
	{
		if (LS.X > tocke [i].X) LS.X = tocke [i].X;
		if (DZ.X < tocke [i].X) DZ.X = tocke [i].X;

		if (LS.Y > tocke [i].Y) LS.Y = tocke [i].Y;
		if (DZ.Y < tocke [i].Y) DZ.Y = tocke [i].Y;
	}

	printf ("((%d,%d),(%d,%d))", LS.X, LS.Y, DZ.X, DZ.Y);
}

int main(int argc, char* argv[])
{
	while (true)
	{
		int c = meni ();

		switch (c)
		{
		case 0:
			return 0;
		case 1:
			preberi ();
			break;
		case 2:
			zapisi ();
			break;
		case 3:
			pravokotnik ();
			break;
		}
	}

	return 0;
}
AMD Phenom QUAD 9950 Black Edition, 8GB

Tutankhamun ::

Upam da me naute napadl ker sm rešu nalogo :/
AMD Phenom QUAD 9950 Black Edition, 8GB

matey19 ::

Ok brez nepotrebnih komentarjev z tutenkamnom sva bla zmenjena da mi prek te strani pomaga tko da pač sm si mal sposodu forum. Hvala tutankamon. Moderator pa lahko zarad mene zdej zbrise tale post
Diplomirani inženir "lenarjenja"

bozjak ::

no naj ti bo ;) za drugič pa uporabita kakšen paste bin, npr: http://pastebin.com/

Lp
http://upor.blogec.si
http://bozjak.deviantart.com


Vredno ogleda ...

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

Java Objekti

Oddelek: Programiranje
101665 (1359) Mavrik
»

Freehand v krivuljo - C# ali VB

Oddelek: Programiranje
101184 (1055) PaX_MaN
»

[C/C++] Konveksna lupina - brute force

Oddelek: Programiranje
71620 (1494) WarpedGone
»

[C++][Naloga_polja]MIN in MAX polja, izpis za x.100 stevil

Oddelek: Programiranje
222381 (2192) snow
»

n kraljic

Oddelek: Programiranje
141200 (1038) Thomas

Več podobnih tem