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;
}
#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