Wednesday, March 5, 2014

#4 Rastojanje izmedju 2 tacke u 3d prostoru - strukture

#include <conio.h>
#include <stdio.h>
#include <math.h>
   // made by Dejan Bogdanovic :)
    //struktura
struct s_point{
int x;
int y;
int z;
};

struct s_point point_A;
struct s_point point_B;
//deklarisanje funkcija
struct s_point s_point_unos();
void s_point_ispis(struct s_point point);
float rastojanje_tacaka(struct s_point point1,struct s_point point2);
float rastojanje_pocetak(struct s_point point);

int main(){
     
    float rastojanje;
    float rast_pocetak_A;
    float rast_pocetak_B;
     
printf("Molimo vas da unesete koordinate tacke A.\n");
point_A = s_point_unos();
printf("Molimo vas da unesete koordinate tacke B.\n");
point_B = s_point_unos();

rastojanje = rastojanje_tacaka(point_A, point_B);
rast_pocetak_A = rastojanje_pocetak(point_A);
rast_pocetak_B = rastojanje_pocetak(point_B);

//ispis rastojanja
printf("Rastojanje izmedju tacaka je: %1.2f.\n", rastojanje);
printf("Rastojanje tacke A od koordinatnog pocetka je: %1.2f.\n", rast_pocetak_A);
printf("Rastojanje tacke B od koordinatnog pocetka je: %1.2f.\n", rast_pocetak_B);

getch();
return 1;
}
//funkcija za racunanje rastojanja izmedju tacaka
float rastojanje_tacaka(struct s_point point1,struct s_point point2){
float rastojanje;
int xd;
int yd;
int zd;

xd = point1.x - point2.x;
yd = point1.y - point2.y;
zd = point1.z - point2.z;

rastojanje = sqrt(xd*xd + yd*yd + zd*zd);

return rastojanje;
}
//funkcija za racunanje rastojanja tacke od koordinatnog pocetka
float rastojanje_pocetak(struct s_point point){
float rastojanje;

rastojanje = sqrt(point.x*point.x + point.y*point.y + point.z*point.z);

return rastojanje;
}
//funkcija za ispis
void s_point_ispis(struct s_point point){
printf("point.x = %d", point.x);
printf("point.y = %d", point.y);
printf("point.z = %d", point.z);
}
//funkcija za unos
struct s_point s_point_unos(){
struct s_point point;
printf("point.x = ");scanf("%d", &point.x);
printf("point.y = ");scanf("%d", &point.y);
printf("point.z = ");scanf("%d", &point.z);

return point;
}