Advertisement
Sergio_The_Best

Задание

Aug 23rd, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.06 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Work_123
  8. {
  9.     class Program
  10.     {
  11.  
  12.         /*В методе Translate тебе нужно сделать так, чтобы возвращался символ без сдвига,
  13.          * если символ уже без сдвига выходит за границы алфавита.
  14.          * В противном случае сдвигаешь его и возвращаешь
  15.         */
  16.  
  17.         /*string text - это какое-то слово на русском
  18.             далее ты каждый символ этого string преобразуешь
  19.             с помощью сдвига и метода Translate, который у тебя уже есть
  20.         */
  21.  
  22.         /*
  23.          Вторая задача, если быстро справишься с первой: создать метод,
  24.          в который передается строка string и сдвиг (число типа int).
  25.          Необходимо трансформировать эту строку с помощью метода Translate и вернуть.
  26.          То есть метод возвращает соответственно тип string (трансформированную строку)
  27.          */
  28.  
  29.         //
  30.         static string Transformate(string strokaUser, int translation){
  31.             string stroka = string.Empty;
  32.             var chars = strokaUser.ToCharArray();
  33.                 for (int i = 0; i < chars.Length; i++)
  34.                 {
  35.                     chars[i] = Translate(chars[i], translation);
  36.                     stroka = stroka + chars[i];
  37.                 }
  38.  
  39.            
  40.             return stroka;
  41.            
  42.         }
  43.  
  44.         static string Deshifrate(string strokaUser, int translation){
  45.               return Transformate(strokaUser, -translation);
  46.         }
  47.  
  48.          static char Translate(char symbol, int translation, char min = 'а', char max = 'я'){
  49.             int numMin = (int)min;
  50.             int numMax = (int)max;
  51.             if ((symbol < min) || (symbol > max)) {
  52.                 return symbol;
  53.             } else {
  54.                 int additTranslation = (int)symbol + translation;
  55.                 int newNumbSymb = Clamp(additTranslation, numMin, numMax);
  56.                 return Convert.ToChar(newNumbSymb);
  57.             }
  58.  
  59.         }
  60.  
  61.         static int Clamp(int current, int min, int max){
  62.             int vspomVar;
  63.             if (current>max){
  64.                 vspomVar = current - max;
  65.                 if (vspomVar>32) {
  66.                     vspomVar = vspomVar - 32;
  67.                     vspomVar = Clamp(min + vspomVar - 1, min, max);
  68.                     return vspomVar;
  69.                 }
  70.                 return (min + vspomVar - 1);
  71.             }
  72.  
  73.             if (current < min)
  74.             {
  75.                 vspomVar = min - current;
  76.                 if (vspomVar > 32)
  77.                 {
  78.                     vspomVar = vspomVar - 32;
  79.                     vspomVar = Clamp(max - vspomVar + 1, min, max);
  80.                     return vspomVar;
  81.                 }
  82.  
  83.                 return (max - vspomVar + 1);
  84.             }
  85.             return current;
  86.         }
  87.        
  88.         static void Main(string[] args)
  89.         {
  90.             char symbol = 'а';
  91.             int numSymbol = (int)symbol;
  92.             int translation = -34;
  93.             Console.WriteLine("Текущий символ {0}", Convert.ToChar(numSymbol));
  94.             char newSymbol = Translate(symbol, translation);
  95.             Console.WriteLine("Символ после сдвига {0}", newSymbol);
  96.  
  97.             //Сделать тоже самое, но через остаток от деления!!!!!!!!!!!!!!!!!!!!!!!!!!!
  98.  
  99.  
  100.             /*Console.WriteLine(Translate('а', 3) == 'г');
  101.             Console.WriteLine(Translate('г', 3) == 'ж');
  102.             Console.WriteLine(Translate('а', 5) == 'е');
  103.             Console.WriteLine(Translate('я', 1) == 'а');
  104.             Console.WriteLine(Translate('я', 3) == 'в');
  105.             Console.WriteLine(Translate('я', -3) == 'ь');
  106.             Console.WriteLine(Translate('а', -3) == 'э');
  107.             Console.WriteLine(Translate('б', -3) == 'ю');
  108.             Console.WriteLine(Translate('б', 32) == 'б');
  109.             Console.WriteLine(Translate('б', -32) == 'б');
  110.             Console.WriteLine(Translate('б', 33) == 'в');
  111.             Console.WriteLine(Translate('б', -33) == 'а');
  112.             Console.WriteLine(Translate('б', 34) == 'г');
  113.             Console.WriteLine(Translate('б', -34) == 'я');
  114.             Console.WriteLine(Translate('б', 64) == 'б');
  115.             Console.WriteLine(Translate('б', -64) == 'б');*/
  116.  
  117.  
  118.             Console.WriteLine("Введите любое слово");
  119.             string strokaUser = Console.ReadLine();
  120.  
  121.             Console.WriteLine("Введите значение сдвига");
  122.             translation = Int32.Parse(Console.ReadLine());
  123.  
  124.             if (strokaUser!=""){
  125.                 Console.WriteLine("Введенное слово => {0} после сдвига => {1}", strokaUser, Transformate(strokaUser, translation));
  126.             }else{
  127.                 Console.WriteLine("Не введено ни одного слова");
  128.             }
  129.  
  130.             Console.WriteLine("Введите слово для дешифрации");
  131.             string deshifracia = Console.ReadLine();
  132.             Console.WriteLine("Введите значение сдвига");
  133.             translation = Int32.Parse(Console.ReadLine());
  134.             if (deshifracia != "")
  135.             {
  136.                 Console.WriteLine("Введенное слово => {0} после сдвига => {1}", deshifracia, Deshifrate(deshifracia, translation));
  137.             }
  138.             else
  139.             {
  140.                 Console.WriteLine("Не введено ни одного слова");
  141.             }
  142.  
  143.             Console.ReadKey();
  144.  
  145.         }
  146.     }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement