[ #Ninja# @ 30.10.2005. 23:38 ] @
U ravni koordinatnog sistema date su tačke A i B sa svojim koordinatama: (x1,y1) i (x2,y2). Napraviti program za određivanje rastojanja tačke A od tačke B.


Ovaj zadatak treba riješiti bez upotrebe if operatora, bez definisanja funkcije i bez logičkih operatora, ali mi ne pada na pamet kako. Riješio sam ga pomoću njih.

Code:
#include <iostream>
#include <math.h>
using namespace std;
float Abs(float a)    /* funkcija koja izracunava apsolutnu vrijednost;
                    neophodna posto duzina ne moze biti negativna */
    {
    if( a >= 0 )
        return a;
    else
        return -a;
    }

int main ()
{
float x1, x2, y1, y2, a, b, rastojanje;
cout << "Unesite koordinate tacke A: ";
cin >> x1;
cin >> y1;
cout << "Unesite koordinate tacke B: ";
cin >> x2;
cin >> y2;

if (x1>=0 && x2>=0)
    a = x1-x2;
else {
    if ((x1<0 && x2>=0)||(x1>=0 && x2<0))
        a = Abs(x1) + Abs(x2);
    else a = Abs(x1) - Abs(x2);
    }
a = Abs(a);

if (y1>=0 && y2>=0)
b = y1-y2;
else {
    if ((y1<0 && y2>=0)||(y1>=0 && y2<0))
        b = Abs(y1) + Abs(y2);
    else b = Abs(y1) - Abs(y2);
    }
b = Abs(b);

rastojanje = sqrt(a*a + b*b);
cout << "Rastojanje izmedju tacaka A i B je "<<rastojanje<< endl;
system ("PAUSE");
return 0;
}



Evo i gotov program.

http://www.fileupyours.com/files/636/Programs/tacke.rar
[ uranium @ 30.10.2005. 23:52 ] @
Čudno...
Da li imaš pravo da koristiš gotove matematičke f-je, npr. kvadratni koren?
Ako je odgovor potvrdan, onda to može ovako:

Code:

#include <iostream>
#include <math.h>
using namespace std;

int main ()
{
    float x1, x2, y1, y2, rastojanje;
    cout << "Unesite koordinate tacke A: ";
    cin >> x1>> y1;
    cout << "Unesite koordinate tacke B: ";
    cin >> x2>> y2;
    a=x1-x2;
    b=y1-y2;
    rastojanje = sqrt(a*a + b*b);

    cout << "Rastojanje izmedju tacaka A i B je "<<rastojanje<< endl;
    system ("PAUSE");
    return 0;
}


Primeti da nije potrebno osiguravati da bude jer će, bez obzira kakvog je znaka , uvek biti i analogno za .
[ #Ninja# @ 31.10.2005. 00:20 ] @
Citat:
uraniumPrimeti da nije potrebno osiguravati da bude jer će, bez obzira kakvog je znaka , uvek biti i analogno za .


Hvala. Bila je moja greška u logici. Zaboravio sam sabirat i oduzimat (ali nisam zaboravio da je kvadrat realnog broja uvijek pozitivan).
[ NrmMyth @ 31.10.2005. 11:16 ] @
Ovo je glupost, matematika.