Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 8
На сайте нет зарегистрированных пользователей

Пользователей: 13,368
новичок: Goosprin
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Создание последовательности окон и передвижение окон по экрану на Turbo ...
Моделирование автомойки на GPSS + Отчет + Блок схемы
Моделирование круглосуточного интернет кафе на GPSS + Отчет

Шаг к реализации списка


Остановимся лишь на принципиальных моментах реализации класса списков и связанных с ним TInfo и TSelect. Класс TItem и неупомянутые в этом параграфе методы полностью приведены в Приложении.
В TInfo мало интересного, ведь это абстрактный класс. Почему же его метод Print не объявлен как abstract? Ответ ясен из следующих четырех строк.
Шаг к реализации списка
Класс TRList довольно сложен в реализации, а потому поучителен. Попробуйте разобраться как работает метод Copy. В нем определен указатель на ссылку, и это типичный прием работы со связными списками.
Шаг к реализации списка
Ещё один нюанс реализации заключается в строке
Ещё один нюанс реализации заключается в строке
Здесь не используется оператор as для приведения типа, как это сделано в ряде других случаев. Основанием для такой “смелости” служит то, что Result проинициализирована в предыдущей строке, и дополнительная проверка совместимости типов будет лишней тратой времени.
Метод Insert может служить иллюстрацией к ссылочной семантике эквивалентности.
Метод Insert может служить иллюстрацией к ссылочной семантике эквивалентности
Эквивалентность в смысле равенства физических адресов устанавливается в цикле
Эквивалентность в смысле равенства физических адресов устанавливается в цикле
Вторая часть условия проверяет неравнство ссылки before и информационной части текущего пункта списка. Таким образом, если ссылки совпадут, это будет означать, что найден элемент, перед которым следует вставить новый пункт списка.
Кстати, с оператором while связан ещё один тонкий момент — вычисление булевского выражения. В программировании принято два способа вычисления сложных булевских выражений, их можно назвать “полным” и “до результата”. Полная схема вычисления состоит в том, что определяются значения каждого из простых выражений и к ним в порядке приоритета применяются булевские операции.
Вторая схема заключается в выполнении вычислений до тех пор пока не окажется возможным установить окончательный результат. Так если в нашем выражении левый операнд окажется равным False, то значение правого не играет роли, окончательный результат будет False. Следовательно, вычисления можно прекратить.
Последняя схема принята в языке C. В Pascal разрешены оба варианта вычислений и они определяются опцией компилятора. По умолчанию принято полное вычисление. В Delphi кажется наоборот, полное вычисление логических выражений нужно указывать в опциях компилятора.
В зависимости от принятой схемы вычисления логических выражений наше условие может оказаться правильным или нет. В самом деле, пусть вычисления выполняются полностью, тогда вторая часть будет вычисляться независимо от результатов первой. Если pCur^ равно Nil, то обращение к pCur^.FInfo окажется за пределами памяти нашей программы и возникнет ошибка доступа к памяти.
Пожалуй самым интересным в реализации класса TSelect, является конструктор. Обратите внимание как он избегает создания объекта, если ему передан нулевой указатель. К объекту применяется деструктор, а ссылка Self устанавливается в Nil.
TSelect
Для правильного применения селекторов разберитесь с методом Next, реализация которого приведена в Приложении.
Опубликовал Kest August 14 2011 20:56:21 · 0 Комментариев · 4885 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Карта сайта
PDJPack
Форма в форме
Dnavigator
FilesInfo
Программирование ...
Microsoft SQL Ser...
Создание Web-сайт...
Apollovcl61
Архив значков
«Философия» прогр...
C++ для начинающих
TDBF
База для Allsubmi...
Шаблон для новост...
RSS Feeds
Черный круг двига...
SendSMS для PHP-F...
Медиа комбайн
Page Promoter 7.7...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97833
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10291
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Выноски
Криптозащита текст...
Глава 3
Бип из системного ...
«Вычитание» подстр...
Стандарт POSIX
Тестирование
Помещение формы в ...
Об этой книге
Приэтом проверяетс...
План книги
Первые языки прогр...
Запись и чтение те...
Jet casino
Пространства имен
Класс TFont
Как вывести на стр...
Закон поглощения л...
О спецификации lOO...
• Убедитесь, что е...
Хорошие казино буд...
и оставить только ...
Виртуальное казино...
Легальный заработок
Подготовка жидкокр...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?