|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 41
|
||||||
.NET 4.x Объясните подробней пример из книги Шилдта14.02.2017, 15:01. Показов 2223. Ответов 9
return a[index - lowerBound]; В книге она объясняется вот так "В этом выражении индекс, передаваемый в качестве параметра index, преобразуется в индекс с отсчетом от нуля, пригодный для индексирования массива а." Но не совсем понятно как это происходит, как он преобразуется, и почему с отсчетом от нуля? Я так понимаю что от передаваемого индекса постоянно отнимается нижняя граница массива, или как?
0
|
||||||
| 14.02.2017, 15:01 | |
|
Ответы с готовыми решениями:
9
Пример из книги Шилдта. Интерфейсные свойства Пример из справочника Шилдта
|
|
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
|
||||||
| 14.02.2017, 17:41 | ||||||
Сообщение было отмечено Progerpro как решение
Решение
массив индексируется всегда с 0, тут же рассмотрен вариант, при котором, ПОЛЬЗОВАТЕЛЬ этого класса, может создать экземпляр класса( и работать с ним как с массивом) с индексацией с любого, даже отрицательного числа...
1
|
||||||
|
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
|
|
| 14.02.2017, 17:53 | |
|
Внутри класса RangeArray определен обычный массив с обычной индексацией (от 0 до n - 1, здесь n - размер массива).
Этот класс предоставляет возможность задавать свой диапазон индексов (от lowerDound до upperBound). Но для внутреннего массива выделяется память в размере n, поэтому к нему есть доступ только по индексам от 0 до n. Поэтому от индекса, переданного пользователем отнимается lowerBound. P.S. Если не ошибаюсь после этого примера Шилдт подробно объясняет, что натворил)
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 41
|
|
| 14.02.2017, 22:19 [ТС] | |
|
Спасибо, теперь я понял.
Добавлено через 9 минут А если в индекс пойдет положительное число, например 2, то будет 2 -(-5)=7, так?
0
|
|
|
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
|
|
| 14.02.2017, 22:23 | |
|
именно
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 41
|
|
| 14.02.2017, 22:27 [ТС] | |
|
А почему тогда при обращении к массиву через индекс например ra[-3] не выскакивает ошибка.
0
|
|
|
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
|
|
| 14.02.2017, 22:29 | |
|
тут нет обращения к массиву напрямую, тут создается класс содержащий массив, и занимается этот класс, "преобразованием" индексов в формат, с которым работает массив(индексация с 0)
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 41
|
|
| 14.02.2017, 22:33 [ТС] | |
|
А какой в этом смысл, не проще было бы просто напрямую обращаться к массиву без преобразования? И зачем тогда вообще начинать индексацию с -5, а не с нуля, если все равно в индексаторе происходит обращение к массиву с нулевого элемента?
0
|
|
|
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
|
|
| 15.02.2017, 12:55 | |
|
если мне не изменяет склероз, то этот пример из раздела про индексаторы, вот вокруг индексаторов вся свистопляска, практического применения тут нет
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 41
|
|
| 15.02.2017, 13:19 [ТС] | |
|
Ну ладно, спасибо)
0
|
|
| 15.02.2017, 13:19 | |
|
Помогаю со студенческими работами здесь
10
Какую книгу по C# читать после книги Шилдта Одномерные индексаторы. По примеру из книги Шилдта - разобрать код
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|