Главная  Карта сайта  Об авторе  Контакты  Нормативно-правовая основа деятельности кафедры

  Интеллектуальные информационные системы  
  Синтаксис языка программирования Пролог  
  Экспертные системы, их использование для решения организационно–экономических задач. Основные компоненты экспертных систем  
  Структура экспертной системы  
  Структуры Пролог  
  Факты, правила, вопросы  
  Процесс разработки имитационных моделей для изучения социально–экономических систем. Основные этапы  
  Декларативная и процедурная семантика программ на языке Пролог  
  Общая схема согласования целевых утверждений  
  Механизм поиска с возвратом  
  Порядок предложений и целей. Опасность бесконечного цикла  
  Рекурсия и ее свойства  
  Схема поиска решений в рекурсивных программах  
  Прикладное программное обеспечение. классификация  
  Структура Пролога списки  
  Операторы. Арифметика в Пролог  
  Предметно-ориентированные информационные системы  

Исследование операций

  Модели теории графов и сетевого моделирования  
  Элементы теории графов  
  Матрицы инцедентности ориентированного графа  
  Природа потоков в сетях и принцип их сохранения  
  Теорема о максимальном потоке и минимальном разрезе  
  Методы решения сетевых задач  
  Метод ветвей и границ  
  Методы сетевого планирования  
  Преимущества СПУ  
  Подготовка задач к решению  
  Правила построения сетевых моделей  
  Параметры сетевых моделей и методы их расчета  
  Анализ сетевых моделей  
  Методы и модели линейного программирования  
  Общая задача линейного программирования  

Структуры и алгоритмы компьютерной обработки данных

  Виды структур данных  
  Развитие концепции структуризации в программировании  
  Понятие типа данных  
  Порядковые типы  
  Абстрактные типы  
  Идентификация объектов  
  Именование  
  Организация адресного пространства оперативной памяти MS DOS  
  Понятие указателя  
  Действия над указателями  
  Связывание идентификатора объекта с его элементом хранения  
  Понятие “времени жизни” объекта  
  Классы памяти  
  Поиск в списке узла по заданному условию  
  Совместимость типов. Приведение и преобразование типов  

Теория оптимального управления
экономическими системами

  Корпоративные информационные системы  
  Стандарты корпоративных систем  
  Программные продукты управления предприятием  
  Информатизация банковской деятельности  
  Современные технологии проектирования управления  
  Понятие Workflow и Workflow Management  
  Модель Workflow Management с точки зрения коалиции WfMC  
  Основные аспекты технологии Workflow Management  
  Организационно-функциональный модуль  
  Хранилища данных и аналитические системы  
  Виртуальное Хранилище Данных  
  Этапы ETL-процесса  
  Очистка данных  
  Аналитические системы  

 

 

 

 
 
 

Действия над указателями

ПРИСВАИВАНИЕ
Присваивание для указателей сводится к пересылке значения одного указателя другому. Совместимыми по присваиванию являются:
• два указателя одного и того же типа;
• константа NIL и свободный указатель;
• константа NIL и ограниченный указатель любого типа;
• свободный указатель и ограниченный указатель любого типа.
Ограниченному указателю одного типа можно присвоить значение ограниченного указателя другого типа с помощью функции приведения типов POINTER (но без крайней необходимости делать это не следует, т.к подобные действия приводят к нарушению строгой типизации).
Каждый указатель перед использованием необходимо инициализировать, т.е. установить на соответствующий объект.
Установка указателя на объект, адрес которого неизвестен, производится с помощью встроенной функции взятия адреса – Addr(), аргументом которой является идентификатор объекта. Эта функция возвращает результат типа Pointer, в котором содержится адрес аргумента. Аналогичный результат возвращает операция @.
Установка указателя  на объект, адрес которого известен и хранится в другом указателе, производится с помощью присваивания.
Var
   pp, pp1, pp2: PPoint; pc: PCircle; p: Pointer;     
begin
    pp1:= pp;  p:= pc;  pp2:= nil; 
Результат выполнения этих операций иллюстрируется рис. 10.
ДОСТУП К ОБЪЕКТУ ЧЕРЕЗ УКАЗАТЕЛЬ. РАСКРЫТИЕ ССЫЛКИ.
Доступ к объекту через ограниченный указатель связан с предварительной установкой указателя на объект и последующим раскрытием ссылки. При этом имя указателя используется как идентификатор, за которым следует символ “^”,  (т.е. калидент с постфиксом “^” ). Доступ к объекту и его атрибутам осуществляется в несколько шагов:
• имя указателя – указатель используется для получения адреса того объекта, с которым он связан
• имя указателя^ - открывает доступ ко всему объекту, адрес которого хранится в указателе
• имя указателя^ .  - открывает доступ к атрибутам объекта
• имя указателя^  . имя атрибута – открывает доступ к конкретному атрибуту объекта.
Каждый из подобных квалидентов открывает доступ к уникальному объекту или атрибуту объекта. В общем случае размер объекта типа указатель, не равен размеру элемента хранения объекта, доступ к которому он открывает и не равен  размеру атрибута объекта, т.е. Sizeof( указатель ) # Sizeof( указатель^ ) # Sizeof( указатель^ .атрибут ).
Для того чтобы сократить длину дистанции доступа при идентификации указанием, можно использовать оператор присоединения
Любое присоединение, объявленное оператором WITH, выполняется после того, как определено значение присоединяющего квалидента (другими словами, адреса того объекта, к атрибутам которого будет осуществляться доступ через указатель), т.е. до “входа” в обрабатываемый фрагмент. Изменение значения присоединяющего указателя внутри присоединяемого фрагмента не изменит уже созданного присоединения. Поэтому переустановка указателя, присоединяющего к обрабатываемому объекту, внутри присоединяемого фрагмента недопустима, а может выполняться только до оператора WITH. Правильный пример использования оператора присоединения приведен выше. Ошибочный пример следует далее:
Var oc1, oc2: Circle; p: PCircle;
 begin
   p: = @oc1;
   with p^ do begin
     p: = @oc2 ;           { ошибка: переустановка указателя внутри
                                                     присоединяемого фрагмента }
     p^. R: = ……
  end;
Если два типизированных указателя указывают на разные объекты одного и того же типа, то одному объекту можно присвоить значения атрибутов  другого объекта.
СРАВНЕНИЕ УКАЗАТЕЛЕЙ.
Указатели можно сравнивать между собой на равенство и неравенство. Два указателя считаются равными, если они указывают на один и тот же объект или оба никуда не указывают (оба равны NIL). Неравные указатели указывают на разные объекты или один из них никуда не указывает. Указатель можно сравнивать с константой NIL, чтобы узнать, ссылается ли данный указатель на конкретный объект. Порядок вычисления булевских выражений в условных операторах, использующих доступ к атрибутам объектов через указатели, очень важен. Например оператор:
   If ( p <> nil )  and  ( p^. R = 10 ) then …
будет работать корректно, даже если p = nil. В этом случае второе условие проверяться не будет согласно правилу вычисления булевских выражений.
 Оператор
   If ( p^. R  = 10 )  and  ( p <> nil )  then …
является некорректным, т.к. если p = nil, выражение p^. R  = 10 не имеет смысла, поскольку указатель p ни на какой конкретный объект не указывает.

 



Поступайте к нам!
Уважаемые абитуриенты! Мы рады приветствовать Вас на нашем сайте и сегодня сообщаем Вам о том, что Вы всё ещё можете подавать заявления и поступать в ВФ МГИУ. Напоминаем, что на некоторые специальности Вы можете поступить по результатам ЕГЭ. Помните, у нас Вы сможете получить прекрасное образование по следующим направлениям: "Прикладная информатика в экономике", "Бухгалтерский учёт, анализ и аудит", Автомобиле- и тракторостроение", "Менеджмент организации"!
подробнее   >>>
 


все новости...

{LTS}

Именование Организация адресного пространства оперативной памяти MS DOS Понятие указателя Связывание идентификатора объекта с его элементом хранения  Понятие “времени жизни” объекта Классы памяти 

 
     
   
 

В помощь дипломнику

  Демин Л. М. Пояснительная записка дипломного проекта  
  Широков Л. А. Дипломное проектирование  
  Общие правила оформления  
  Правила оформления приложения  
  Литература, рекомендуемая дипломнику  
  Выбор и формулировка темы дипломного проектирования  
  ОСТ 4.071.030  
  Общие положения для Объяснительной записки  
  Состав выпускной квалификационной работы  

Статьи и публикации

  КОМТЕЛ - 2010  
  Олимпиада по информатике в Смоленске  
  Кураторство  
  График контроля выполнения дипломных проектов и готовности к государственному экзамену студентов специальности 080801  
  График проведения консультаций - осений семестр 2009  
  План проведения дня открытых дверей  
  Олимпиада по информатике в Смоленске  
  Результаты внутренней олимпиады по информатике  
  График проведения контрольных точек дипломного проектирования специальности 080801 «Прикладная информатика в экономике»  

Нормативно-правовая основа деятельности кафедры

  Должностная инструкция доцента кафедры  
  Должностная инструкция заведующего кафедрой  
  Общие рекомендации по планированию работы кафедры на учебный год  
  Общие рекомендации по выполнению выпускной квалификационной работы  
  Положение о кафедре ВФ ГОУ МГИУ  
  Положение о кураторе студенческой учебной группы ВФ ГОУ МГИУ  
  Положение о курсовых экзаменах и зачетах  
  Положение о планировании, организации и проведении лабораторных работ  
  Положение о научно-методическом совете филиала ГОУ ВПО МГИУ в г. Вязьме  
  Положение о планировании, организации и проведении практических работ  
  Положение о практике студентов ВФ ГОУ МГИУ  
  Положение о промежуточной аттестации студентов ВФ ГОУ МГИУ  
  Положение о самостоятельной работе студентов  
  Положение о планировании, организации и проведении семинарских занятий  
  Положение о системе рейтинговой оценки студентов  
  Положение о ВФ ГОУ ВПО МГИУ Смоленской области  
  Положение об итоговой государственной аттестации  
  Положение об ученом совете  
  Правила внутреннего трудового распорядка  


Рассылки Subscribe.Ru
Современное образование
Подписаться письмом