Как в классе оформить что то вроде функции - C#
Формулировка задачи:
Привет, всем.
Такая ситуация в классе происходит последовательный расчет индекса с одинаковыми блоками кода, но разными действиями в зависимости от результата. Не получается сделать его методом и что бы он вызвался внутри своего же класса. Вот:
class Test { public int Count(int n) { int[] m = new int[n]; //Представление числа n как массив m (Пример 5 = 1 2 3 4 5) for (int x = 0 ; x < n; x++) { m[x] = x + 1; } int i = 0, c = 0; for (; ; ) { //Бесконечный цикл //Блок установки индекса i for (; m[i] == 0; i++) { //Блок закольцовки if (i == n - 1) { i = 0; if ( m[i] != 0) break; } //Конец блока закольцовки } //Конец блока установки i //Проверка на последний элемент в массиве, i установлен if (m[i] != 0 & c == n - 1) return m[i]; //Блок обнуления //Иниацилизация индекса обнуления if (i == n - 1) i = 0; else i++; ///////// //Установка индекса обнуления for (; m[i] == 0; i++) { if (i == n - 1) { i = 0; if (m[i] != 0) break; } } //Конец индекс обнуления установлен //Обнуление m[i] = 0; c++; //Конец блока обнуления } } }
Решение задачи: «Как в классе оформить что то вроде функции»
textual
Листинг программы
class Circle { public static int round(int i, int[] m, int x) { for (; m[i] == 0; i++) { if (i == x - 1) { i = 0; if (m[i] != 0) break; } } return i; } } class Test { public int Count(int x) { int i = 0, c = 0; int[] m = new int[x]; for (int x = 0; x < x; x++) { m[x] = x + 1; } for (; ; ) { i = Circle.round(i, m, x); if (m[i] != 0 & c == x - 1) return m[i]; if (i == x - 1) i = 0; else i++; i = Circle.round(i, m, x); m[i] = 0; c++; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д