Advertisement
Guest User

Untitled

a guest
May 27th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #define PR1(z) printf("i=%03d ", z );
  2. #define PRn printf("\n");
  3. #define PR2(x, n, y) for (i=1; i<n; i++) printf(x, y[i]);
  4. int rek2(int), przes2(int), sort2(int), a[9]={0,63,35,15,48,15,27,17,63};
  5. main()
  6. { int n=9, (*fptr)(int);
  7. fptr = rek2; printf("Wynik dzialania rek2 = %d\n", (*fptr)(n));
  8. fptr = przes2; printf(" => Wynik = %d\n", (*fptr)( 2*n+2>>2 ));
  9. fptr = sort2;
  10. printf("Co to za obiekt: int (*fptr)(float *, char)?\n"); PRn;
  11. printf("W wydruku zestawu 2 ma byc %d+1 linii", (*fptr)(n+1>>1)&0xa);
  12. }
  13. int rek2(int n)
  14. { printf ("Wywolanie rek2 z argumentem (%d)\n", n);
  15. if ( n<=0 ) return n&15;
  16. else return ( rek2 ( n - 5 >> 1 ) + n | 7); }
  17. int przes2 (int m)
  18. { int *ptr, i, n = 1;
  19. ptr=(int *) malloc(m*sizeof(int)<<1); *(ptr+n++) = m;
  20. {int i, j, m;
  21. for ( j=7, i=5, m=i&j; j>i; j--) { *(ptr + n++) = m + 1 >> 1;
  22. { int i, m; for ( i=4, m=j^i; i<j-1; i++) *(ptr+n++) = --m;}
  23. ptr[n++] = m^3; } ptr[n++] = m/2-i; } ptr[n++] = m<<1;
  24. PR2("%d", 2*m+1, ptr); return ( 4 - m >> 2 );
  25. }
  26. int sort2(int n)
  27. { int i, j, k, l, p, x;
  28. PR1(1); PR2("%3o ",n,a); PRn; l = 2; p = k = n - 1;
  29. do { for(j=p; j>=l; j--)
  30. if ( a[j-1] > a[j] ) { x=a[j-1]; a[j-1]=a[j]; a[j]=x; k=j;}
  31. l=k+1; PR1(l); PR2("%3x ", n, a); PRn;
  32. for (j=l; j<=p; j++)
  33. if ( a[j-1] > a[j] ) { x=a[j-1]; a[j-1]=a[j]; a[j]=x; k=j;}
  34. p=k-1; PR1(p); PR2("%3d ", n, a); PRn;
  35. } while (l<p); return(sizeof(a)/2|7); }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement