Advertisement
hocikto19

10. cviko ZPRPR2

Aug 7th, 2014
538
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.72 KB | None | 0 0
  1. // uloha-10-1.c -- Tyzden 10 - Uloha 1
  2. // Michal Kovacik, 30.4.2014 06:44:31
  3.  
  4. #include <stdio.h>
  5.  
  6. void nasob(int *hodnota){
  7.     if (sizeof((*hodnota) << 1) > sizeof(int))
  8.         printf("Operaciu nie je mozne vykonat\n");
  9.     else
  10.         (*hodnota) <<= 1;
  11. }
  12.  
  13. void vydel(int *hodnota){
  14.     if (sizeof((*hodnota) << 1) < 1)
  15.         printf("Operaciu nie je mozne vykonat\n");
  16.     else
  17.         (*hodnota) >>= 1;
  18. }
  19.  
  20. int main(){
  21.     int hodnota = 1, a;
  22.     char volba;
  23.     while ((volba = getchar()) != 'T'){
  24.         switch (volba) {
  25.             case 'L': scanf("%d", &hodnota); break;
  26.             case 'M': nasob(&hodnota); break;
  27.             case 'D': vydel(&hodnota); break;
  28.             case 'A': scanf("%d", &a); hodnota += a; break;
  29.             case 'S': scanf("%d", &a); hodnota -= a; break;
  30.         }
  31.         while (getchar() != '\n');
  32.         printf("Aktualna hodnota: %d\n", hodnota);
  33.     }
  34.     return 0;
  35. }
  36.  
  37.  
  38. // uloha-10-2.c -- Tyzden 10 - Uloha 2
  39. // Michal Kovacik, 30.4.2014 08:45:24
  40.  
  41. #include <stdio.h>
  42. #include <stdlib.h>
  43.  
  44. unsigned int invert(unsigned int x, int i, int n)
  45. {
  46.     int k, j, pom=1;
  47.   while(pom<=x)
  48.     pom=pom<<1;
  49.   pom=pom>>1;
  50.     for(j=0; j<n; j++){
  51.         k = i + j;
  52.       x ^= (pom>>k);
  53.     }
  54.   return x;
  55. }
  56.  
  57. int main()
  58. {
  59.     int i, j, x, ii, nn;
  60.  
  61.     scanf("%d %d %d", &x, &ii, &nn);
  62.  
  63.     printf("x = %d ", x);
  64.     printf("(");
  65.     for (j = 0, i = 31; i >= 0; i--)
  66.     {
  67.         if (x & (1 << i))
  68.             j = 1;
  69.         if (j)
  70.         {
  71.             if (x & (1 << i))
  72.                 printf("1");
  73.             else
  74.                 printf("0");
  75.         }
  76.     }
  77.     printf(")\n");
  78.  
  79.     printf("invert(x, %d, %d)\n", ii, nn);
  80.    
  81.     x = invert(x, ii, nn);
  82.  
  83.     printf("x: %d ", x);
  84.     printf("(");
  85.     for (j = 0, i = 31; i >= 0; i--)
  86.     {
  87.         if (x & (1 << i))
  88.             j = 1;
  89.         if (j)
  90.         {
  91.             if (x & (1 << i))
  92.                 printf("1");
  93.             else
  94.                 printf("0");
  95.         }
  96.     }
  97.     printf(")\n");
  98.  
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement