Advertisement
icatalin

9.11.2017 LAB

Nov 9th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.51 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int cautareBinara(int v[100], int x, int l, int r)
  5. {
  6.     int mij = l + (r-l)/2;
  7.  
  8.     while ( l <= r)
  9.     {
  10.         if ( x == v[mij] )
  11.             return mij;
  12.  
  13.         if ( x < v[mij] )
  14.             r = mij +1;
  15.         else
  16.             l = mij -1;
  17.  
  18.         mij = l + (r-l)/2;
  19.     }
  20. }
  21.  
  22. void cautareBinara2()
  23. {
  24.     int v[10]={1,2,3,4,5,6,7,8,9,10}; // 10 elem
  25.  
  26.     int i, x,y, indx,indy;
  27.  
  28.     printf("Citi x si y. Sa se gaseasca in vector (x < y). \n");
  29.     scanf("%d %d", &x, &y); // sa se gaseasca in numerele din vector
  30.  
  31.     indx = cautareBinara(v,x,0,9);
  32.     indy = cautareBinara(v,y,0,9);
  33.  
  34.     printf("\n");
  35.  
  36.     for (i = indx + 1; i < indy; i++)
  37.         printf("%d ", v[i]);
  38. }
  39.  
  40. void transpusa()
  41. {
  42.     int a[100][100], b[100][100];
  43.     int i,j,n;
  44.  
  45.     printf("Cititi dimensiunea matricei si apoi elementele matricei. \n");
  46.     scanf("%d", &n);
  47.  
  48.     printf("\n");
  49.  
  50.     for (i=0; i<n; i++)
  51.         for (j=0; j<n; j++)
  52.         {
  53.             printf("a[%d][%d] = ", i,j);
  54.             scanf("%d", &a[i][j]);
  55.         }
  56.  
  57.     for (i=0; i<n; i++)
  58.         for (j=0; j<n; j++)
  59.             b[i][j]=a[j][i];
  60.  
  61.  
  62.      printf("\n Matricea normala este: \n");
  63.  
  64.     for (i=0; i<n; i++)
  65.     { for (j=0; j<n; j++)
  66.         printf("%d ", a[i][j]);
  67.         printf("\n");
  68.     }
  69.  
  70.  
  71.     printf("\n Matricea transpusa este: \n");
  72.  
  73.     for (i=0; i<n; i++)
  74.     { for (j=0; j<n; j++)
  75.         printf("%d ", b[i][j]);
  76.         printf("\n");
  77.     }
  78.  
  79. }
  80.  
  81.  
  82. void spirala(int n, int m)
  83. {
  84.     int a[100][100];
  85.     int i,j, el=1;
  86.  
  87.     for (i=0; i<n; i++) // construirea matricii
  88.         for (j=0; j<m; j++)
  89.         {
  90.             a[i][j] = el;
  91.             el++;
  92.         }
  93.  
  94.     int c = 0, k = 0;
  95.  
  96.     while (c != n * m)
  97.         {
  98.         for (j= 0 + k; j < m - k; j++)
  99.             { printf("%d ", a[0 + k][j]); c++;
  100.  
  101.               if (c == n*m)
  102.                 return;
  103.             }
  104.  
  105.         for (i= 1 + k; i < n - k; i++)
  106.             { printf("%d ", a[i][m - (1+k)]); c++;
  107.  
  108.             if (c == n*m)
  109.                 return;
  110.             }
  111.  
  112.         for (j= m - (2+k); j >= 0 + k; j--)
  113.             { printf("%d ", a[n - (1+k)][j]); c++;
  114.  
  115.             if (c == n*m)
  116.                 return;
  117.             }
  118.  
  119.         for (i= n - (2+k); i > 0 + k ; i--)
  120.             { printf("%d ", a[i][0 + k]); c++;
  121.  
  122.             if (c == n*m)
  123.                 return;
  124.             }
  125.  
  126.             k++;
  127.         }
  128. }
  129.  
  130.  
  131. int main()
  132. {
  133.  
  134.     spirala(4,4);
  135.  
  136.     return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement