home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / CataniaB / teach-act / esempi / Strutture_Union / struct3.c < prev    next >
C/C++ Source or Header  |  1997-04-06  |  943b  |  56 lines

  1. #include <stdio.h>
  2. #define I 0
  3. #define F 1
  4.  
  5. typedef struct {float x,y;} punto;     /* punto nome di tipo! */  
  6.  
  7. punto segmento[2];
  8. punto segmento1[2];
  9.  
  10.  
  11.  
  12. /* Il tipo record(structure) puo' essere 
  13.    usato come tipo di ritono e tipo degli  argomenti di una funzione. */
  14.  
  15. punto initP(int x, int y)  /* "crea" il punto con (x,y) */
  16.   {
  17.     punto P;
  18.     P.x=x;             /* non c'e' conflitto con i campi del record */
  19.     P.y=y;    
  20.     return P;         /* P di tipo punto: ok */
  21.    
  22.   }
  23.  
  24.  
  25.  
  26. void initS(punto segmento[],int xi,int yi,int xf,int yf )
  27.  {
  28.    segmento[I]=initP(xi,yi);
  29.    segmento[F]=initP(xf,yf);
  30.  }
  31.  
  32.  
  33.  
  34. int confP(punto P, punto Q) 
  35.   {
  36.     return( P.x==Q.x && P.y==Q.y);  /* bisogna confrontare campo x campo! */
  37.   }
  38.  
  39.  
  40.  
  41.  
  42. int confS(punto s[], punto z[]) 
  43.   {
  44.     return(confP(s[I],z[I]) && confP(s[F],z[F]));  
  45.   }
  46.  
  47.  
  48. main()
  49.  
  50.   initS(segmento,0,0,1,1);
  51.   initS(segmento1,0,0,1,2);
  52.   printf("\n %d",confS(segmento,segmento));
  53.  
  54. }
  55.