Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.01.2014
Сообщений: 54

Обьясните код пожалуйста

09.01.2014, 16:08. Показов 792. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашла вот такой код пожалуйста можете обьяснить мне что происходит? как происходит заполнение массива?
Ситуация такова что этот кусочек кода проверяет правильность упорядочнивания?
обьясните пожалуйста как и какие значения записываются в массив?
Nomer уникальное значение, у первого элемента он 1 у остальных идет по возрастанию 1,2,3,4,5
C#
1
2
3
4
5
6
7
8
9
10
11
12
 public bool Winner()
        {
            int g = 3;
            for (int i = 0; i < g * g - 1; ++i)
            {
                int j = i / gran;
                int m = i % gran;
                if (mass[m, j] == null || mass[m, j].Nomer != i + 1)
                    return false;
            }
            return true;
        }
как проверяется упорядочненность мне не ясно а кусочек кода хотелось бы применить к своей програмке
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.01.2014, 16:08
Ответы с готовыми решениями:

обьясните код
public class Organiz { public long Id { get; set; } public string Gorod { get; set; } public string Org { get;...

Обьясните код
h = new Stack&lt;int&gt;; h = new Stack&lt;int&gt;(); h = new Stack&lt;int&gt;(); h = new Stack&lt;int&gt;(); h.Push(8); h.Push(7); h.Push(6); ...

Обьясните код
Код приводится из тетриса private void timer1_Tick(object sender, EventArgs e) { if (fig == null) {...

10
236 / 75 / 24
Регистрация: 12.05.2010
Сообщений: 216
09.01.2014, 16:36
Что бы объяснить этот код, нужно видеть весь класс, а не только данный метод, например в этом методе присутствует переменная gran и структура или класс с свойством Nomer(как элемент массива mass). В данном коде заполнения массива нет, данный метод скорее всего вызывается после каждого шага пользователя в какой-то игре, видимо, и проверяет завершил ли все пользователь или нет. Массив скорее всего 3x3, переменная gran тоже скорее всего 3. А метод проверяет что бы массив был вида:

1 2 3
4 5 6
7 8 9
1
0 / 0 / 0
Регистрация: 01.01.2014
Сообщений: 54
09.01.2014, 16:43  [ТС]
Цитата Сообщение от Tyoma Посмотреть сообщение
Что бы объяснить этот код, нужно видеть весь класс, а не только данный метод, например в этом методе присутствует переменная gran и структура или класс с свойством Nomer(как элемент массива mass). В данном коде заполнения массива нет, данный метод скорее всего вызывается после каждого шага пользователя в какой-то игре, видимо, и проверяет завершил ли все пользователь или нет. Массив скорее всего 3x3, переменная gran тоже скорее всего 3. А метод проверяет что бы массив был вида:

1 2 3
4 5 6
7 8 9
а как единичка записывается, там же заполняется [m,j], я думала что вид будет примерно такой
[0;1] [..;..] [..;..]
[..;..] [..;..] [..;..]
[..;..] [..;..] [..;..]
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
09.01.2014, 16:45
Нашла вот такой код пожалуйста можете обьяснить мне что происходит? как происходит заполнение массива?
C#
1
2
3
4
5
6
7
8
9
10
11
Forms Code
{
 Сначала нужно определится:
  1 Одномерный ли массив
  2. Размер массива, т.е. число элементов
  3. Какие элементы массива: int или Double
  4. Заполнить массив можно автомтически случайными числами, или числами, которые генерируются
      по определенному законы
 Тогда можно будет составить довольно простой код   
 
}
1
236 / 75 / 24
Регистрация: 12.05.2010
Сообщений: 216
09.01.2014, 16:52
Цитата Сообщение от Александра2014 Посмотреть сообщение
а как единичка записывается, там же заполняется [m,j], я думала что вид будет примерно такой
[0;1] [..;..] [..;..]
[..;..] [..;..] [..;..]
[..;..] [..;..] [..;..]
m и j в данном коде - индексы массива mass, там происходит считывание элемента из массива mass по индексу [m,j]. Запись производится в каком-то другом методе.

то есть массив получается следующий

mass[0,0] - какой-то объект со свойством Nomer = 1
mass[1,0] - какой-то объект со свойством Nomer = 2
mass[2,0] - какой-то объект со свойством Nomer = 3
mass[0,1] - какой-то объект со свойством Nomer = 4
mass[1,1] - какой-то объект со свойством Nomer = 5
mass[2,1] - какой-то объект со свойством Nomer = 6
mass[0,2] - какой-то объект со свойством Nomer = 7
mass[1,2] - какой-то объект со свойством Nomer = 8
mass[1,2] - какой-то объект со свойством Nomer = 9
1
0 / 0 / 0
Регистрация: 01.01.2014
Сообщений: 54
09.01.2014, 16:59  [ТС]
массив двумерный
C#
1
int[,] mass = new int[100, 100];
элементы массива Int
массив заполняется пока не кончится это условие
C#
1
int i = 0; i < g * g - 1; ++i
0
236 / 75 / 24
Регистрация: 12.05.2010
Сообщений: 216
09.01.2014, 17:04
Если массив объявлен как

C#
1
int[,] mass = new int[100, 100];
то в приведенном методе присутствует ошибка, компилятор будет ругаться что int не содержит поля или свойства Nomer, метод придется переписать до следующего вида:

C#
1
2
3
4
5
6
7
8
9
10
public bool Winner() {
            int g = 3;
            for (int i = 0; i < g * g - 1; ++i) {
                int j = i / gran;
                int m = i % gran;
                if (mass[m, j] == 0 || mass[m, j] != i + 1)
                    return false;
            }
            return true;
        }
1
0 / 0 / 0
Регистрация: 01.01.2014
Сообщений: 54
09.01.2014, 19:13  [ТС]
Цитата Сообщение от Tyoma Посмотреть сообщение
m и j в данном коде - индексы массива mass, там происходит считывание элемента из массива mass по индексу [m,j]. Запись производится в каком-то другом методе.

то есть массив получается следующий

mass[0,0] - какой-то объект со свойством Nomer = 1
mass[1,0] - какой-то объект со свойством Nomer = 2
mass[2,0] - какой-то объект со свойством Nomer = 3
mass[0,1] - какой-то объект со свойством Nomer = 4
mass[1,1] - какой-то объект со свойством Nomer = 5
mass[2,1] - какой-то объект со свойством Nomer = 6
mass[0,2] - какой-то объект со свойством Nomer = 7
mass[1,2] - какой-то объект со свойством Nomer = 8
mass[1,2] - какой-то объект со свойством Nomer = 9
а если массив сделать 4 на 4 то всего элементов будет 16 как будет выглядеть вот это
C#
1
2
3
4
5
6
7
8
mass[0,0] - какой-то объект со свойством Nomer = 1
mass[1,0] - какой-то объект со свойством Nomer = 2
mass[2,0] - какой-то объект со свойством Nomer = 3
mass[0,1] - какой-то объект со свойством Nomer = 4
mass[1,1] - какой-то объект со свойством Nomer = 5
mass[2,1] - какой-то объект со свойством Nomer = 6
mass[0,2] - какой-то объект со свойством Nomer = 7
mass[1,2] - какой-то объект со свойством Nomer = 8
0
236 / 75 / 24
Регистрация: 12.05.2010
Сообщений: 216
09.01.2014, 19:20
Цитата Сообщение от Александра2014 Посмотреть сообщение
а если массив сделать 4 на 4 то всего элементов будет 16 как будет выглядеть вот это
C#
1
2
3
4
5
6
7
8
mass[0,0] - какой-то объект со свойством Nomer = 1
mass[1,0] - какой-то объект со свойством Nomer = 2
mass[2,0] - какой-то объект со свойством Nomer = 3
mass[0,1] - какой-то объект со свойством Nomer = 4
mass[1,1] - какой-то объект со свойством Nomer = 5
mass[2,1] - какой-то объект со свойством Nomer = 6
mass[0,2] - какой-то объект со свойством Nomer = 7
mass[1,2] - какой-то объект со свойством Nomer = 8
mass[0,0] - 1
mass[1,0] - 2
mass[2,0] - 3
mass[3,0] - 4
mass[0,1] - 5
mass[1,1] - 6
...
mass[0,3] - 13
mass[1,3] - 14
mass[2,3] - 15
mass[3,3] - 16
1
0 / 0 / 0
Регистрация: 01.01.2014
Сообщений: 54
09.01.2014, 20:32  [ТС]
Цитата Сообщение от Tyoma Посмотреть сообщение
mass[0,0] - 1
mass[1,0] - 2
mass[2,0] - 3
mass[3,0] - 4
mass[0,1] - 5
mass[1,1] - 6
...
mass[0,3] - 13
mass[1,3] - 14
mass[2,3] - 15
mass[3,3] - 16
а вы не подскажите если какой то математический алгоритм
но почему именно так переменные определили
C#
1
2
 int j = i / gran;
                int m = i % gran;
0
236 / 75 / 24
Регистрация: 12.05.2010
Сообщений: 216
09.01.2014, 20:40
Цитата Сообщение от Александра2014 Посмотреть сообщение
а вы не подскажите если какой то математический алгоритм
но почему именно так переменные определили
C#
1
2
 int j = i / gran;
               int m = i % gran;
/ - операция деления, остаток отбрасывается
% - операция получение остатка от деления

соответственно 7 элемент - 2 строка 3 элемент, если размер массива 5 на 5
7 / 5 = 1 (j = 1)
7 % 5 = 2 (m = 2)
соответственно так получаем индекс, а не используем вложенный цикл, что бы можно было понять какой это элемент в массиве по порядку
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.01.2014, 20:40
Помогаю со студенческими работами здесь

Обьясните весь код
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { ...

обьясните пожалуйста код
#include&lt;cstdio&gt; #include&lt;cstdlib&gt; #include&lt;iostream&gt; #include&lt;string.h&gt; using namespace std; class NameDataSet { public: ...

Обьясните код, пожалуйста
find . -type f -name '*.log' | grep -v .do-not-touch| while read fname do mv $fname ${fname/ .log/ .LOG/} done а именно вот эту...

Обьясните пожалуйста небольшой код
Добрый день! Какой смысл от этого куска кода, обьясните пожалуйста ! if($('.controls').length){ ...

Калькулятор. Пожалуйста, обьясните код
Не могу понять зачем здесь переменные типа Byte и Boolean, и что они обозначают. Dim Bool1, Bool2, Bool3 As Boolean Dim Byte1 As Byte ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru