Дан массив ar и функция классификации – int Classification(int m, T item). Напишите процедуру HowMany - C#

Узнай цену своей работы

Формулировка задачи:

Дан массив ar и функция классификации – int Classification(int m, T item). Напишите процедуру HowMany, вычисляющую целочисленный массив. Элемент этого массива с индексом k должен быть равным числу элементов вида k, содержащихся в массиве ar. Функция классификации должна передаваться процедуре HowMany в качестве параметра.
Листинг программы
  1. static int k = 0;
  2. static int n = 0;
  3. static int[] item = new int[n];
  4. static Random r = new Random();
  5. static int min, max;
  6. static int Classification(int max, int[] item)
  7. {
  8. return item[k];
  9. }
  10. delegate int ClassificationDelegate(int max, int[] item);
  11. static int[] HowMany(ClassificationDelegate func)
  12. {
  13. int temp = 0;
  14. int t = 0;
  15. int[] ar1 = new int[max];
  16. for (int j = 0; j < max; j++, min++)
  17. {
  18. temp = min;
  19. for (int i = 0; i < n; i++)
  20. {
  21. k = i;
  22. if (temp == func(max, item))
  23. t++;
  24. }
  25. ar1[j] = t;
  26. t = 0;
  27. }
  28. return ar1;
  29. }
  30. private void button_выход_Click(object sender, EventArgs e)
  31. {
  32. Close();
  33. }
  34. private void button_очистить_Click(object sender, EventArgs e)
  35. {
  36. textBox_максзнач.Clear();
  37. textBox_минзнач.Clear();
  38. textBox_размерностьмассива.Clear();
  39. textBox1.Text = null;
  40. textBox2.Text = null;
  41. }
  42. private void button_рассчитать_Click(object sender, EventArgs e)
  43. {
  44. try
  45. {
  46. n = Convert.ToInt32(textBox_размерностьмассива.Text);
  47. min = Convert.ToInt32(textBox_минзнач.Text);
  48. max = Convert.ToInt32(textBox_максзнач.Text);
  49. item = new int[n];
  50.  
  51. for (int i = 0; i < n; i++)
  52. {
  53. item[i] = r.Next(min, max);
  54. textBox1.Text += item[i] + " ";
  55. }
  56. ClassificationDelegate fun = Classification;
  57. int[] ar1 = HowMany(fun);
  58. foreach (int i in ar1)
  59. {
  60. textBox2.Text += (i + " ");
  61. }
  62. }
  63. catch (FormatException ex)
  64. { MessageBox.Show(ex.Message); }
  65. }
Вот код. но работает криво, через раз. Помогите пожалуйста исправить. Заранее большое спасибо
Допустим у нас в массиве 1 единица, 2 двойки, 0 троек, и т.д. Как сделать так чтобы выводило 1(1) 2(2) 0(3) 1(4) и т.д

Решение задачи: «Дан массив ar и функция классификации – int Classification(int m, T item). Напишите процедуру HowMany»

textual
Листинг программы
  1. var items = new[] { 1, 2, 3, 4, 1, 2, 3, 2, 3, 2 };
  2.             var result = items.GroupBy(item => item)
  3.                 .Aggregate(new StringBuilder(),
  4.                     (prev, next) => prev.Append(next.Key).AppendFormat("({0}) ", next.Count())).ToString();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы