Advertisement
AMIT_H

HW-1

Jul 28th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include<string.h>
  4. using  namespace  std;
  5. template <class T>
  6. int realmain(int size, int seed, char*str)
  7. {
  8.     T *arr = new T[size];
  9.     arr=initialization_arr(size, seed, arr);
  10.     xor(size,arr,str);
  11.     printf_new_Arr(size, arr, str);
  12.     delete[]arr;
  13.     delete[]str;
  14.     return 0;
  15. }
  16.  
  17. template <class T>
  18. T* initialization_arr(int size, int seed, T*arr)
  19. {
  20.     int i;
  21.     srand(seed);
  22.     for (i = 0; i < size; i++) {
  23.         arr[i] = rand() % 255;
  24.     }
  25.     for (i = 0; i < size; i++)
  26.         cout <<"arr[i]=" <<arr[i] << endl;
  27.     return arr;
  28. }
  29.  
  30. template <class T>
  31. void xor(int size, T*arr, char*str)
  32. {
  33.     int i, low_value = {};
  34.     if (size < strlen(str))
  35.     {
  36.         low_value = size;
  37.     }
  38.     else
  39.     {
  40.         low_value = strlen(str);
  41.     }
  42.     for ( i = 0; i < low_value; i++)
  43.     {
  44.         arr[i]=arr[i]^str[i];/*השמה של העים */
  45.         cout << "strlen=" << strlen(str) <<"size="<<size<<"i="<<i<< endl;
  46.         cout << "this is new arr" << arr[i] << endl;
  47.     }
  48. }
  49.  
  50. template <class T>
  51. void printf_new_Arr(int size, T*arr,char*str)/*הדפסת ערכים של המערך*/
  52. {
  53.     int i, low_value =0;
  54.     if (size < strlen(str))/*לקבל את הערך הקטן ביותר*/
  55.     {
  56.         low_value = size;
  57.     }
  58.     else
  59.     {
  60.         low_value = strlen(str);
  61.     }
  62.     for (i = 0; i < low_value; i++)
  63.     {
  64.         cout << arr[i] << endl;
  65.     }
  66.    
  67. }
  68.  
  69.  
  70. int main(int argc, char* argv[])
  71. {
  72.     int numof_led = 0;
  73.     int size = atoi(argv[2]);
  74.     int seed = atoi(argv[4]);
  75.     numof_led = strlen(argv[3]);/*מספר התווין במערך*/
  76.     char*str = new char[numof_led+1];/*הקצאה למערך STR*/
  77.     strcpy(str,argv[3]);/*העתקה למערך החדש.*/
  78.  
  79.     if (strcmp(argv[1], "int") == 0)
  80.     {
  81.         return realmain<int>(size,seed,str);
  82.     }
  83.     if (strcmp(argv[1], "long") == 0)
  84.     {
  85.         return realmain<long>(size,seed,str);
  86.     }
  87.     if (strcmp(argv[1], "char") == 0)
  88.     {
  89.         return realmain<char>(size,seed,str);
  90.     }
  91.  
  92.     return 0;
  93. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement