ВУЗ:
Составители:
Рубрика:
84
// индексатор для доступа к элементу матрицы по его индексам
public double this[int i, int j]
{
// получение значения элемента матрицы
get
{
// поиск позиции искомого элемента в списке
int index = 0;
// пропускаем элементы, находящиеся
// в строках с меньшим номером
while (index < count && i > list[index].I)
index++;
if (index < count && i == list[index].I)
{
// пропускаем элементы, находящиеся в той же
// строке, но в столбцах с меньшим номером
while (index < count && i == list[index].I &&
j > list[index].J)
index++;
}
// если элемент в заданной позиции уже
// имеется, возвращаем его значение
if (index < count && i == list[index].I &&
j == list[index].J)
return list[index].Value;
// если элемента в списке нет, его значение равно 0
return 0;
}
// установка значения элемента матрицы
set
{
bool insert = false;
// проверка корректности позиции устанавливаемого элемента
if (i < m && j < n)
{
// если новое значение элемента нулевое,
// удаляем элемент из списка
if (value == 0)
{
DeleteElement(i, j);
return;
}
// поиск позиции устанавливаемого элемента
int index = 0;
// пропускаем элементы, находящиеся
// в строках с меньшим номером
while (index < count && i > list[index].I)
index++;
// индексатор для доступа к элементу матрицы по его индексам public double this[int i, int j] { // получение значения элемента матрицы get { // поиск позиции искомого элемента в списке int index = 0; // пропускаем элементы, находящиеся // в строках с меньшим номером while (index < count && i > list[index].I) index++; if (index < count && i == list[index].I) { // пропускаем элементы, находящиеся в той же // строке, но в столбцах с меньшим номером while (index < count && i == list[index].I && j > list[index].J) index++; } // если элемент в заданной позиции уже // имеется, возвращаем его значение if (index < count && i == list[index].I && j == list[index].J) return list[index].Value; // если элемента в списке нет, его значение равно 0 return 0; } // установка значения элемента матрицы set { bool insert = false; // проверка корректности позиции устанавливаемого элемента if (i < m && j < n) { // если новое значение элемента нулевое, // удаляем элемент из списка if (value == 0) { DeleteElement(i, j); return; } // поиск позиции устанавливаемого элемента int index = 0; // пропускаем элементы, находящиеся // в строках с меньшим номером while (index < count && i > list[index].I) index++; 84
Страницы
- « первая
- ‹ предыдущая
- …
- 83
- 84
- 85
- 86
- 87
- …
- следующая ›
- последняя »