izmenjeno 1 put, poslednji put X Files 14.04.2009. u 19:56
Izmene poruke
- X Files14.04.2009. u 19:56zapis iz teksta poruke
Zadatak glasi: Kooristeći principe objektnoorijentisanog programiranja rješiti zadatak:
Dato je n tacaka u ravni svojim koordinatama. Napisati program za ispitivanje da li medu zadatim tačkama postoje četiri koje predstavljaju koordinate tjemena pravougaonika.
Kad kompajlira sve je uredu, ali kad unesem sve koordinate, javi mi gresku. "Program has encountered....". Znate li sta je problem?
Hvala!
Dato je n tacaka u ravni svojim koordinatama. Napisati program za ispitivanje da li medu zadatim tačkama postoje četiri koje predstavljaju koordinate tjemena pravougaonika.
Code:
Ja sam uradio ovako:
//#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int tacke_x[100];
int tacke_y[100];
int duzine_kordinate_x[100][3];
int n,i,j,duzina,trenutna_duzina_x=2;
cout << "Unesi broj tacaka: ";
cin >> n;
for (i=1;i<=n;i++)
{
cout << i <<". tacka unesi x,y ";
cin >> tacke_x[i];
cin >> tacke_y[i];
}
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
if (tacke_y[i]==tacke_y[j])
{
if (tacke_x[i]!=tacke_x[j])
if (tacke_x[i]<tacke_x[j])
{
duzina=tacke_x[j]-tacke_x[i];
duzine_kordinate_x[trenutna_duzina_x][0]=i;//pamti jednu tacku
duzine_kordinate_x[trenutna_duzina_x][1]=j;//pamti drugu tacku tj. indexe
duzine_kordinate_x[trenutna_duzina_x][2]=duzina;
}
else
{
duzina=tacke_x[i]-tacke_x[j];
duzine_kordinate_x[trenutna_duzina_x][0]=j;// na nuli je bliza tacka
duzine_kordinate_x[trenutna_duzina_x][1]=i;
duzine_kordinate_x[trenutna_duzina_x][2]=duzina;
}
trenutna_duzina_x++;
}
}
trenutna_duzina_x--;
for (i=1;i<=trenutna_duzina_x;i++)
for (j=2;j<=trenutna_duzina_x;j++)
{
if (duzine_kordinate_x[i][2]==duzine_kordinate_x[j][2])
{
if (abs(tacke_y[duzine_kordinate_x[i][0]]-tacke_y[duzine_kordinate_x[j][0]])
==abs(tacke_y[duzine_kordinate_x[i][1]]-tacke_y[duzine_kordinate_x[j][1]]))
cout <<"Pravugaonik cine tacke :" <<duzine_kordinate_x[i][0]<<duzine_kordinate_x[i][1]<<duzine_kordinate_x[j][0]<< duzine_kordinate_x[j][1];
}
}
}
Ja sam uradio ovako:
//#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int tacke_x[100];
int tacke_y[100];
int duzine_kordinate_x[100][3];
int n,i,j,duzina,trenutna_duzina_x=2;
cout << "Unesi broj tacaka: ";
cin >> n;
for (i=1;i<=n;i++)
{
cout << i <<". tacka unesi x,y ";
cin >> tacke_x[i];
cin >> tacke_y[i];
}
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
if (tacke_y[i]==tacke_y[j])
{
if (tacke_x[i]!=tacke_x[j])
if (tacke_x[i]<tacke_x[j])
{
duzina=tacke_x[j]-tacke_x[i];
duzine_kordinate_x[trenutna_duzina_x][0]=i;//pamti jednu tacku
duzine_kordinate_x[trenutna_duzina_x][1]=j;//pamti drugu tacku tj. indexe
duzine_kordinate_x[trenutna_duzina_x][2]=duzina;
}
else
{
duzina=tacke_x[i]-tacke_x[j];
duzine_kordinate_x[trenutna_duzina_x][0]=j;// na nuli je bliza tacka
duzine_kordinate_x[trenutna_duzina_x][1]=i;
duzine_kordinate_x[trenutna_duzina_x][2]=duzina;
}
trenutna_duzina_x++;
}
}
trenutna_duzina_x--;
for (i=1;i<=trenutna_duzina_x;i++)
for (j=2;j<=trenutna_duzina_x;j++)
{
if (duzine_kordinate_x[i][2]==duzine_kordinate_x[j][2])
{
if (abs(tacke_y[duzine_kordinate_x[i][0]]-tacke_y[duzine_kordinate_x[j][0]])
==abs(tacke_y[duzine_kordinate_x[i][1]]-tacke_y[duzine_kordinate_x[j][1]]))
cout <<"Pravugaonik cine tacke :" <<duzine_kordinate_x[i][0]<<duzine_kordinate_x[i][1]<<duzine_kordinate_x[j][0]<< duzine_kordinate_x[j][1];
}
}
}
Kad kompajlira sve je uredu, ali kad unesem sve koordinate, javi mi gresku. "Program has encountered....". Znate li sta je problem?
Hvala!