Dimitrija

Laboratoriski 1 - 3 OOP

Feb 24th, 2021 (edited)
829
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4.  
  5. /*
  6.  
  7. За програмски јазик C.
  8.  
  9. Да се надополни програмата со следните барања:
  10.  
  11. да се креира структура на точка во тродимензионален простор и да се напише функција која ќе го пресметува растојанието помеѓу две такви точки.
  12. да се напише функција која како аргумент прима три точки во дводимензионален простор и ќе проверува дали тие точки лежат на иста права.
  13. For example:
  14.  
  15. Input  
  16. 0 1
  17. 2 2
  18. 4 3
  19. Result
  20. 2.24
  21. 2.45
  22. 1
  23.  
  24. */
  25.  
  26.  
  27. typedef struct tocka2D{
  28. float x;
  29. float y;
  30. }tocka2D;
  31.  
  32. float rastojanie(tocka2D t1,tocka2D t2){
  33. return sqrt(pow((t2.x - t1.x),2) + pow((t2.y - t1.y),2));
  34. }
  35.  
  36. typedef struct tocka3D{
  37. float x;
  38. float y;
  39. float z;
  40. }tocka3D;
  41.  
  42. float rastojanie3D(tocka3D t3,tocka3D t4){
  43.  
  44. return sqrt(pow((t4.x - t3.x),2) +pow((t4.y - t3.y),2) + pow((t4.z - t3.z),2));
  45. }
  46.  
  47. int ista_prava(struct tocka2D t1,struct tocka2D t2,struct tocka2D t5){
  48.     return (((t2.y - t1.y) / (t2.x - t1.x)) == ((t5.y - t1.y) / (t5.x - t1.x)));
  49.  
  50. }
  51.  
  52.  
  53. int main() {
  54.     float x1, y1, x2, y2;
  55.     scanf("%f %f", &x1, &y1);
  56.     scanf("%f %f", &x2, &y2);
  57.     tocka2D t1 = { x1, y1 };
  58.     tocka2D t2 = { x2, y2 };
  59.     printf("%.2f\n", rastojanie(t1, t2));
  60.     float z1, z2;
  61.     scanf("%f %f", &z1, &z2);
  62.     tocka3D t3 = {x1, y1, z1};
  63.     tocka3D t4 = {x2, y2, z2};
  64.     printf("%.2f\n", rastojanie3D(t3, t4));
  65.     tocka2D t5 = {z1, z2};
  66.     printf("%d\n", ista_prava(t1, t2, t5));
  67.     return 0;
  68. }
  69.  
RAW Paste Data