Редактирование: Язык Ада, 03 лекция (от 10 марта)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 1: Строка 1:
 +
=Лекция №3.=
==Покомпонентное сложение двух неограниченных массивов==
==Покомпонентное сложение двух неограниченных массивов==
Рассмотрим удобство атрибутов при работе с массивами. Допустим для неограниченного массива нужно определить покомпонентное сложение. Если слагаемые разной длины, то это стоит трактовать как нарушение подтиповых ограничений. Однако одинаковая длина массивов не гарантирует совпадение индексных диапазонов. Для того, чтобы привести дискретное значение типа индекса к порядковому номеру, используется атрибут Pos, вычисляется необходимый сдвиг для порядкового номера и возвращение к соответствующему значению индексному значению происходит с помощью атрибута Val. Параметры функции «+» Left и Right объявлены как имеющие тип Arr, индексный диапазон которого не уточнен. Но Left и Right — это формальные параметры, на место которых при вызове функции «+» будут подставлены конкретные массивы с известными индексными диапазонами. В теле функции «+» можно пользоваться атрибутами массивов Range, First, Length, с помощью которых можно получить информацию о индексном диапазоне.
Рассмотрим удобство атрибутов при работе с массивами. Допустим для неограниченного массива нужно определить покомпонентное сложение. Если слагаемые разной длины, то это стоит трактовать как нарушение подтиповых ограничений. Однако одинаковая длина массивов не гарантирует совпадение индексных диапазонов. Для того, чтобы привести дискретное значение типа индекса к порядковому номеру, используется атрибут Pos, вычисляется необходимый сдвиг для порядкового номера и возвращение к соответствующему значению индексному значению происходит с помощью атрибута Val. Параметры функции «+» Left и Right объявлены как имеющие тип Arr, индексный диапазон которого не уточнен. Но Left и Right — это формальные параметры, на место которых при вызове функции «+» будут подставлены конкретные массивы с известными индексными диапазонами. В теле функции «+» можно пользоваться атрибутами массивов Range, First, Length, с помощью которых можно получить информацию о индексном диапазоне.
Строка 14: Строка 15:
В шаблонах соблюдаются концепция строгой типизации. В Аде используются контрактные модели. При определении шаблона можно в качестве параметра этого шаблона описывать формальные типы, задавая свойства этих формальных типов. При реализации шаблона можно пользоваться теми свойствами формального типа, которые для них заданы. Когда достраивается шаблон, то необходимо, чтобы фактические типы имели как минимум те свойства, которые присутствуют в формальных типах.
В шаблонах соблюдаются концепция строгой типизации. В Аде используются контрактные модели. При определении шаблона можно в качестве параметра этого шаблона описывать формальные типы, задавая свойства этих формальных типов. При реализации шаблона можно пользоваться теми свойствами формального типа, которые для них заданы. Когда достраивается шаблон, то необходимо, чтобы фактические типы имели как минимум те свойства, которые присутствуют в формальных типах.
Для реализации шаблона для покомпонентного сложения массивов необходимо, чтобы для типа массива была определена операция присваивания и операция сложения. Индексные типы имеют дискретный тип, а любой дискретный тип с помощью атрибута Pos можно перевести в порядковый номер, для которого определены операции сложения.
Для реализации шаблона для покомпонентного сложения массивов необходимо, чтобы для типа массива была определена операция присваивания и операция сложения. Индексные типы имеют дискретный тип, а любой дискретный тип с помощью атрибута Pos можно перевести в порядковый номер, для которого определены операции сложения.
- 
-
{{Курс Язык Ада}}
 

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Шаблоны, использованные на этой странице:

Личные инструменты
Разделы