/* modyfikacja tablicy przez funkcje*/ #include #include /* makro wypelnia tablice o podanym rozmiarze liczbami*/ #define WYP_TAB(t,n,fun,typ,xp,dx) \ { \ int i; \ typ x; \ x = xp; \ for(i=0; i<=n-1; i++) \ { \ t[i] =fun(x); \ x += dx; \ } \ } #define MAXKOL 8 /*makro drukuje tablice t o rozmiarze n*/ #define DRUKUJ_TAB(t,n,fm) \ { \ int i; \ printf(”\n Tablica ”); \ printf(#t); \ printf(”\n”); \ for (i=0; i<=n-1; i++) \ { \ if (i % MAXKOL ==0 && i>1) \ printf(”\n”); \ printf(#fm,t[i]); \ } \ } #define RA 28 #define RB 23 /* funkcja modyfikujaca tablice – elementy dodatnie zostaja zamienione na 1 pozostale na 0*/ void mod_tab (int t[], int n) { int i; for (i=0; i<=n-1; i++) if(t[i] > 0) t[i] = 1; else t[i] = 0; } /* modul glowny*/ main() { int a[RA], b[RB]; WYP_TAB(a,RA,20*sin,double,0.,0.5); DRUKUJ_TAB(a,RA,%7d); printf(”\n------modyfikacja------\n”); mod_tab(a,RA); DRUKUJ_TAB(a,RA,%7d); printf(”\n********************\n”); WYP_TAB(b,RB,30*cos,double,1.,0.5); DRUKUJ_TAB(b,RB,%7d); printf(”\n------modyfikacja------\n”); mod_tab(b,RB); DRUKUJ_TAB(b,RB,%7d); }