SHARE
TWEET

emir

a guest Jan 12th, 2017 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
Pastebin PRO Summer Special!
Get 40% OFF on Pastebin PRO accounts!
Top