AddO1f

Делегированый мусор

Oct 31st, 2016
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.71 KB | None | 0 0
  1. using System;
  2.  
  3. delegate int Nums(int x, int y);
  4. delegate bool Interv(int[] x, int y);
  5. delegate bool Nums1(int x, int y);
  6. delegate int Mass(int[] x);
  7. delegate int Matrix(int[,] x);
  8. delegate void Matrix1(int[,] x);
  9. delegate string Opis(int x);
  10. delegate int Str(string x);
  11. delegate string Str1(string x);
  12.  
  13. class Program
  14. {
  15.     public static int unknown(char k, string x)
  16.     {
  17.         return Convert.ToInt32(x.Split(k).Length.ToString()) - 1;
  18.     }
  19.     static void Main(string[] args)
  20.     {
  21.     /*Мне лень организовывать вывод данных, а тебе лень их каждый раз вводить,
  22.     поэтому давай ты их просто поменяешь в коде, и все будут довольны!*/
  23.  
  24.     int x1 = 19, x2 = 15, x3 = 166;
  25.     int[] mass = new int[] { 1, 10, 25, 15, 34, 8, 7 };
  26.     int[,] matr = { { 1, 3, 6 }, { 4, -5, 8 }, { 3, 5, 7 } };
  27.     string x = "Что ты хочешь от меня?? Этот код работает, на него необязательно смотреть!";
  28.     string y =  "Нужно((больше((((скобок)))))";
  29.     Console.Write("Входные данные:\nx1="+x1+" x2="+x2+" x3="+x3+"\nМассив: { ");
  30.     foreach (int i in mass)
  31.     {
  32.         Console.Write(i+" ");
  33.     }
  34.     Console.WriteLine("}\nМатрица:");
  35.     for (int i=0; i<matr.GetLength(0); i++)
  36.     {
  37.         Console.Write("{ ");
  38.         for (int j = 0; j < matr.GetLength(1); j++)
  39.         {
  40.             Console.Write(matr[i, j]+" ");
  41.         }
  42.         Console.WriteLine("}");
  43.     }
  44.     Console.WriteLine("Строка 1: "+x+"\nСтрока 2: "+y+"\n");
  45.  
  46.     //Использование дегенера... делегатов:
  47.     Nums sum = (p, l) =>
  48.             {
  49.                 return p + l;
  50.             };
  51.     Interv prin = (p, l) =>
  52.             {
  53.                 for (int i = 0; i < p.GetLength(0); i++)
  54.                 {
  55.                     if (p[i] == l) return true;
  56.                 }
  57.                 return false;
  58.             };
  59.     Nums1 srav = (p, l) =>
  60.             {
  61.                 return (p > l);
  62.             };
  63.     Mass razm = (b) =>
  64.             {
  65.                 return b.GetLength(0);
  66.             };
  67.     Mass max = (b) =>
  68.             {
  69.                 int k = 0;
  70.                 for (int i = 0; i < razm(b); i++)
  71.                     if (k < b[i]) k = b[i];
  72.                 return k;
  73.             };
  74.     Mass polozh = (b) =>
  75.             {
  76.                 int k = 0;
  77.                 for (int i = 0; i < razm(b); i++)
  78.                     if (b[i] > 0) k++;
  79.                 return k;
  80.             };
  81.     Matrix sumDiag = (b) =>
  82.             {
  83.                 int s = 0;
  84.                 for (int i = 0; i < Math.Min(b.GetLength(0), b.GetLength(1)); i++)
  85.                     s += b[i, i];
  86.                 return s;
  87.             };
  88.     Matrix polStr = (b) =>
  89.             {
  90.                 int s = 0;
  91.                 for (int i = 0; i < b.GetLength(0); i++)
  92.                 {
  93.                     for (int k = 0; k < b.GetLength(1);)
  94.                     {
  95.                         if (b[i, k] < 0) break; k++;
  96.                         if (k == b.GetLength(1)) s++;
  97.                     }
  98.                 }
  99.                 return s;
  100.             };
  101.     Opis opis = (b) =>
  102.             {
  103.                 string s1, s2 = null, s3 = "число";
  104.                 switch (b.ToString().Length)
  105.                 {
  106.                     case 1: s2 = "однозначное "; break;
  107.                     case 2: s2 = "двузначное "; break;
  108.                     case 3: s2 = "трехзначное "; break;
  109.                     case 4: s2 = "четырехзначное "; break;
  110.                     default: break;
  111.                 }
  112.                 if (x3 % 2 == 0) s1 = "четное "; else s1 = "нечетное ";
  113.                 return s1 + s2 + s3;
  114.             };
  115.     Str slov = (b) =>
  116.             {
  117.                 //на /dev/null я нашел хороший коммент:"Работает-не трогай!" Советую обратить внимание...
  118.                 return unknown(' ', b);
  119.             };
  120.     Str1 zel = (b) =>
  121.             {
  122.                 return b.Replace(" ", "");
  123.             };
  124.     Str glas = (b) =>
  125.             {
  126.                 //Я же просил, не смотри на этот код!!
  127.                 return unknown('а',b)+ unknown('о', b) + unknown('у', b) + unknown('е', b) + unknown('ы', b) + unknown('э', b) + unknown('я', b) + unknown('и', b) + unknown('ю', b);
  128.             };
  129.     Str chs = (b) =>
  130.             {                
  131.                 int k=0;
  132.                 string s = "(", s1 = ")";
  133.                 for(int i=0; i<b.Length ; i++)
  134.                 {
  135.                     if (b[i].ToString().Contains(s)) k++; //проверка элемента на наличие строки, который переделан из char в строку...
  136.                     else if (b[i].ToString().Contains(s1)) k--; //осталось только приделать в код монитор
  137.                     if (k < 0) return i+1;
  138.                 }
  139.                 if (k > 0) return -1;
  140.                 return 0;
  141.             };
  142.     Matrix1 transp = (b) =>
  143.             {
  144.                 for (int i = 0; i < b.GetLength(0); i++)
  145.                 {
  146.                     Console.Write("{");              
  147.                     for (int k = 0; k < b.GetLength(1); k++)
  148.                     {
  149.                         Console.Write(b[k, i] + " ");
  150.                     }        
  151.                     Console.Write("}\n");
  152.                 }
  153.             };
  154.    
  155.     Console.WriteLine("Сумма х1 и х2: "+sum(x1,x2)+ "\nx1 больше х2?: " +srav(x1,x2)+ "\nx1 принадлежит массиву?: "+ prin(mass,x1)+"\nРазмер массива: "+razm(mass)+"\nМаксимальное значение массива: "+max(mass)+"\nКол-во положительных элементов массива: "+polozh(mass) + "\nСумма элементов главной диагонали матрицы: " +sumDiag(matr)+"\nКол-во строк с положительными элементами в матрице: "+ polStr(matr)+"\nХарактеристика x3: " +opis(x3)+"\nКол-во слов в строке 1: "+slov(x)+ "\nСтрока 1 без пробелов: "+zel(x) + "\nКол-во гласных в строке 1: " + glas(x)+ "\nЗначение лишних скобок в строке 2: "+chs(y)+"\nТранспонированная матрица:");
  156.     transp(matr); //я не знаю как по другому вывести эту матрицу, там и так 2 цикла      
  157.     Console.ReadKey();
  158.     }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment