Advertisement
Guest User

emir

a guest
Jan 12th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define PI 3.14159265358979323846
  4. /* Definicija tacke i kruznice */
  5. struct Tacka {
  6. float x,y;
  7. };
  8.  
  9. struct Kruznica {
  10. struct Tacka centar;
  11. float poluprecnik;
  12. };
  13.  
  14. struct Pravougaonik {
  15. struct Tacka gore_desno;
  16. struct Tacka dole_lijevo;
  17. };
  18.  
  19.  
  20. /* Funkcije za unos */
  21. struct Tacka unos_tacke() {
  22. struct Tacka t;
  23. printf ("Unesite koordinate tacke (x, y):\n");
  24. scanf ("%f,%f", &t.x, &t.y);
  25. return t;
  26. }
  27.  
  28. struct Kruznica unos_kruznice() {
  29. struct Kruznica k;
  30. printf ("Unesite centar kruznice:\n");
  31. k.centar = unos_tacke();
  32. printf ("Unesite poluprecnik kruznice:\n");
  33. scanf("%f", &k.poluprecnik);
  34. return k;
  35. }
  36.  
  37. /* Dodatne Funkcije */
  38. float obim_kruznice(struct Kruznica k) {
  39. float o;
  40. o = 2 * k.poluprecnik * PI;
  41. return o;
  42. }
  43.  
  44. float povrsina_kruznice(struct Kruznica k) {
  45. float p;
  46. p = k.poluprecnik * k.poluprecnik * PI;
  47. return p;
  48. }
  49.  
  50. /* Funkcija za obim pravougaonika */
  51.  
  52. float obim_pravougaonika(struct Pravougaonik p){
  53. float a, b, o;
  54. a=sqrt((p.gore_desno.x - p.dole_lijevo.x) * (p.gore_desno.x - p.dole_lijevo.x));
  55. b=sqrt((p.gore_desno.y - p.dole_lijevo.y) * (p.gore_desno.y - p.dole_lijevo.y));
  56.  
  57. o = 2*(a+b);
  58.  
  59. return o;
  60. }
  61.  
  62. /* Funkcija za povrsinu pravougaonika*//
  63.  
  64. float povrsina_pravougaonika(struct Pravougaonik p){
  65. float a, b, povrs;
  66. a=sqrt((p.gore_desno.x - p.dole_lijevo.x) * (p.gore_desno.x - p.dole_lijevo.x));
  67. b=sqrt((p.gore_desno.y - p.dole_lijevo.y) * (p.gore_desno.y - p.dole_lijevo.y));
  68.  
  69. povrs = a*b;
  70.  
  71. return povrs;
  72. }
  73.  
  74. int tacka_u_pravougaoniku(struct Tacka t, struct Pravougaonik p) {
  75. if((t.x>p.gore_desno.x || t.x<p.dole_lijevo.x) || (t.y>p.gore_desno.y || t.y<p.dole_lijevo.y)) return 0;
  76. else return 1;
  77. }
  78.  
  79. /* Funkcija za udaljenost izmedju dvije tacke */
  80. float udaljenost(struct Tacka t1, struct Tacka t2) {
  81. return sqrt( (t1.x-t2.x)*(t1.x-t2.x) + (t1.y-t2.y)*(t1.y-t2.y) );
  82. }
  83.  
  84. /* Glavni program: Da li je tacka unutar kruznice */
  85. int main() {
  86. struct Kruznica k;
  87. struct Tacka t;
  88. struct Pravougaonik p;
  89. float d;
  90. printf ("Unesite kruznicu:\n");
  91. k = unos_kruznice();
  92. printf ("Unesite neku tacku:\n");
  93. t = unos_tacke();
  94.  
  95. /* Tacka se nalazi unutar kruznice ako je udaljenost tacke od centra
  96. kruznice manja od poluprecnika kruznice */
  97. d = udaljenost(t, k.centar);
  98. if (d<k.poluprecnik)
  99. printf("Tacka je unutar kruznice.\n");
  100. else if (d==k.poluprecnik)
  101. printf("Tacka je na kruznici.\n");
  102. else
  103. printf("Tacka je izvan kruznice.\n");
  104.  
  105. /* Edits */
  106. printf("Obim kruznice: %.3f\n", obim_kruznice(k));
  107. printf("Povrsina kruznice: %.3f", povrsina_kruznice(k));
  108.  
  109. return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement