Методические указания к лабораторным работам по дисциплине Информационные технологии. Ч.1: Функциональные объекты и адаптеры

Recommend Stories

Empty story

Idea Transcript


КОНТРОЛЬНЫЙ

ЛИСТОК

СРОКОВ ВОЗВРАТА

МОСКОВСКИЙ

ГОСУДАРСТВЕННЫЙ АВТОМОБИЛЬНО-ДОРОЖНЫЙ

ИНСТИТУТ (ТЕНИЧЕСКИЙ УНИВЕРСИТЕТ)

КНИГА ДОЛЖНА БЫТЬ ВОЗВРАЩЕНА НЕ ПОЗЖЕ УКАЗАННОГО

ЗДЕСЬ СРОКА

Кафедра «АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ»

Колич. пред, выдач.

Заведующей кафедрой ,«у^ ^

с

г/

профессор

А.Б.

Николаев

2006 г.

А.Б. Самохвалов, Э.А. Чернов

Методические указания к лабораторным работам по дисциплине «Информационные технологии»

Часть 1

ФУНКЦИОНАЛЬНЫЕ

ОБЪЕКТЫ

*Уг,|.".1-..-.Г.1 ^ •

И АДАПТЕРЫ

;^

МОСКВА 2006

УДК 519.682(075.8)

ББК 681.3

Содержание 5

1. Функциональные объекты

4

Введение

2. Классы функциональных объектов стандартной биб-

Методические указания содержат краткое описание функциональных

объектов

и адаптеров стандартной

библиотеки

шаблонов языка

С++, типовые задания к лабораторным работам по данному разделу и примеры их выполнения. Предназначаются «Информатика

и

для студентов

и вычислительная

«Автоматизированные соответствует

направления

подготовки 654600

15

3. Адаптируемые функциональные объекты

13

лиотеки

4. Адаптеры функциональных

объектов

16 19

5. Адаптеры функций-членов Примеры заданий к лабораторным работам

23

25

Рекомендуемые источники

24

Список контрольных вопросов

техника» для специальности 220200

системы обработки информации и управления»

программе дисциплины

«Информационные

техноло-

гии».

© Московский автомобильно-дорожный институт (государственный технический университет) 2006

Задания, шаблонов -

связанные

с

вызывают

трудности

у

студентов

стандартной

библиотеки

объекты и их адаптеры, при

выполнении

технологии».

неред-

лабораторных

В то же время эта теинформационных

одним из лучших образцов практического вопло-

концепций обобщённого программирования. Настоящие

предоставляемых

практике

средствами

программирования

часто

обобщённого

встречаются

мето-

програм-

алгоритмы,

которых не зависит от типов данных, с которыми

вставка

связным списком, информационная

нового элемента,

такого

алгоритма

выпол-

элемента

обобщенным

представление выражения

объект

функции.

('ЧипсНоп оЬ]ес?') -

Функциональный

стратегии применения

быть обобщён путём помещения ный объект. Обобщённый дение екта.

путём

передачи

Типичная

алгоритм

объект

это обобщённое

предназначен

соответствующего

повсеместно

с помощью

для

алгоритма. Любой алгоритм может

части его поведения в

функциональ-

алгоритм «настраивается» на нужное

ему

ситуация,

реализуется

пове-

функционального

используемая

шаблона

функции, а

в

8Т1 -

объкогда

функциональ-

ный объект передаётся ей в качестве параметра. С точки зрения языковых

конструкций функциональный

объект

-

это сущность, которая

может быть применена с помощью обычного синтаксиса вызова функт.е.

с указанием имени

скобках. Для

и

перечислением

этого функциональные

объекты

аргументов

в круглых

реализуются как классы

с определённым оператором (операторной функцией) «скобки»:

являет-

составляющая ко-

работы с ним (проход по

исключение

называется

и т. д.).

методом

Реапро-

/* Модель обобщённого алгоритма: */ 1етр1а4е уо!с1 ЗотеА1доп1пт(11ег р1, Пег р2, Р Т) {



#тс1ис!е

из1пд пагпезрасе з{о!;

изтд патезрасе з(с1;

с!аз5 МуВ1пагу /* бинарная функция */

с!абз МуКпагуРгеа1 /* унарный предикат */

{

{

риЬНс:

риЬПс:

Ьоо!

Яоа1 орега{ог() (сопз* Яоа{ а, сопз! Иоа{ Ь) сспз! { геШгп (а + Ь) / с; }

МуипагуРгео!(1ги {) : т(1) {}

МуВ|'пагу(г!оа{ {) : с(т) {}

орега!ог() (1п4 е!ет) сопз{ { ге(игп !(е!ет % т); }

рпуа!е:

(1оа! с;

1п{

1п{ та!п()

т:

та1п()

та!п() у.ризг!_Ьаск(18); у.ризп_ЬасК(28); у.рибИ_Ьас1 может быть ше

в приведённом

элементов

меньше

5

высле-

Ьоо! 1зУаПс1(!п{ х) {ге*игп х == 0 || х == 4 ; }

дующим образом: ш! п = соипП

и

конструкторы «ипагу_педа*е»

использовать стандартные вспомога-

В данном

функтора

тельные функции «по11» и «по!2».

Уа11с1.

и

Пример: ется

предположим, имеется два

сравнить

их

поэлементно,

Для

примере

того,

чтобы

имеется

свободная

использовать её

в

(глобальная) функция

1з-

качестве адаптируемого

(унарного предиката) применяется функция «р*М

числовых диапазона; требу-

причём

результат

сравнения

равен

«{те» только в том случае, если оба числа равны 0. Решение:

5. Адаптеры функций-членов

1 та!п()

сопз{

{ з-З;

Данное

= {5, 8, 0};

сов

в

семейство адаптеров преобразует функции-члены

адаптируемые

функциональные

объекты.

Адаптер

клас-

функции-

члена

-20-

принимает указатель или ссылку на объект класса

вызова вующую

(если

они есть)

и вызывает

для

данного

и аргументы

объекта

-21-

аззег1(гез[0] == 20 && гез[1] == 12)-

соответст-

функцию-член.

Рассмотрим

в

«соп5т,_гпет_т'ип1_!>>,

качестве

примера

создающий

стантной функции-члена {етр1а!е

Алгоритм цию,

«{гап5[огт»,

как

известно,

выполняет

бинарную

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

входных

диапазонов:

в нашем

случае

первый

держит элементы типа Орегайоп*, а второй -

с1азз сопз1_тет_т"ип1_! : риЫю Ыпагу„типст.юп

пляр адаптера

риЫю:

ся

{

подходящей

бинарной

функцией:

его

числа

оператор

(!п{). Экземявляет-

«скобки»

объект

класса «сопз1:_тет_{ип1_{» хранит

класса

«Т»

«скобки»

в

пере-

класса «Т», по-

получает

при

1П1 орега(ог() (сопз1: ОрегаИоп*, 1п4) сопз!. Стандартная членов

К {Т::*Р1г)(А) соне!;

видно, экземпляр

в конструкторе. Оператор

2 аргумента:

и аргумент, с которым должна

его адаптируемая функция. Реализация

«сопз!_тет_т"ип1_!»

функ-

из двух

входной диапазон со-

целые

сопз{_тет_й!п1_1 как раз и

инстанцировании получает сигнатуру

ехрНсИ соп51_тет_Тип1._1(Я (Т::*Рт)(А) сопз!) : Р!г(Рт) {} К орега!ог()(сопз! Т* р, А агд) сопз! { ге!ит ((р->*Р!г)(агд)); } рпуа1е:

(таблица

стантные

библиотека 2),

определяет

позволяющих

функции-члены

без

8

вызывать

аргумента

или

с

адаптеров константные одним

функцийи

некон-

аргументом, и

для каждой сигнатуры объект класса может передаваться через тель Как

менной «Р!г» указатель на константную функцию-член

на

указатель

лучаемый

вызвана

оператора

быть

«скобки»

собственно и осуществляет её вызов. Адаптером мер,

или ссылку. Для того, чтобы

ных

адаптеров,

«тет_7ип» должным версии

«тет_1гип_ге^»1 экземпляр

каждой

две

вспомогательные

возвращающие

адаптера

сигнатуры.

принимающих

указа-

не писать явно конструкторы указан-

ЗТ1 предоставляет

и

образом

для

адаптеров,

Первая

указатель

и

объект

функции -

инстанцированный

имеющие

функция

на

перегруженные

предназначена класса,

а

для

вторая

-

ссылку. можно

воспользоваться,

напри-

таким образом:

В

приведённом

выше

примере вместо создания локальной

пере-

менной «тт» следовало бы записать: {гапз1гогт(уОр.Ьед1п(), уОр.епс)(), о!а!а, ЬасК_1пзег{ег(ге8),

з!гис! Орега!юп { у1п:иа! т* Оо(1п!) сопз* = 0; };

тет_гип(&Орега1юп::Оо));

з!гис! Ми!2 : риЫю Орегайоп { У1г!иа1 т!

Таблица 2.

Оо(1п! х) сопз! { ге!игп х * 2; } };

Стандартные адаптеры Тип вызы-

Адаптер

|

функций-членов

функция для соз-

(ссылки/указателя) на

члена ! 1

т! та!п()

Вспомогательная

Вызывается для

ваемой

з!гис1 Р!из2 : риЫю Орегайоп

функции-

{ у1г!иа1 1п! Оо(1п! х) сопз! { ге!игп х + 2; } };

|

{

дания адаптера

объект класса

тет

ЯХ::т()

тип

тет

тип

тегп

Р1из2 р!з;

тет

Ми!2 ти!;

!

геС

!"ип1

геС

тет

указателя

!

тет

ссылки

!

!1т1

тип (ип

тет

указателя

!

Smile Life

When life gives you a hundred reasons to cry, show life that you have a thousand reasons to smile

Get in touch

© Copyright 2015 - 2024 AZPDF.TIPS - All rights reserved.