Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Параметризация типов данных в классах и функциях.

Читайте также:
  1. Host BusПредназначена для скоростной передачи данных (64 разряда) и сигналов управления между процессором и остальными компонентами системы.
  2. II. Типовые модели карьеры
  3. III. ОБЩАЯ ТИПОВАЯ ФРАЗЕОЛОГИЯ
  4. IX. Проблема типов в биографике
  5. PIMS: от данных к официальным заявлениям
  6. V. ТИПОВАЯ ФРАЗЕОЛОГИЯ РАДИООБМЕНА ДИСПЕТЧЕРОВ ОРГАНОВ ОБСЛУЖИВАНИЯ ВОЗДУШНОГО ДВИЖЕНИЯ (УПРАВЛЕНИЯ ПОЛЕТАМИ) С ЭКИПАЖАМИ ВОЗДУШНЫХ СУДОВ
  7. VI. Проблема типов в психопатологии

Язык C допускает параметризацию абстрактного типа данных с помощью шаблонных классов. При создании функций возникают ситуации,когда две или более функций выполняют одинаковую обработку информации, но работают с разными типами данных. Например, задача определить максимум из двух значений переменных может решаться для переменных типа int, float, double, char. В языке C++ предоставляется возможность создавать функции, которые могут возвращать значение разных типов. Для этой цели используются шаблоны. Шаблон функции определяет типонезависимую функцию. Шаблон представляет собой функцию или класс, реализованные для нескольких типов данных, причем на момент написания программы для функции неизвестны. Можно сказать, что в этом случае функция параметризирована несколькими типами. Для реализации шаблона или параметризованного типа в языке C++ используется ключевое слово template. Приведем пример определения шаблона для функции с именем max:

Переменную T называют параметром типа. Имя T в данном случае представляет собой общий тип шаблона. После определения шаблона в программе надо определить прототипы функций для каждого типа переменных, которые будут использовать эту функцию. В результате при помощи шаблонов могут использовать одно и то же имя для функций, которые выполняют определенные преобразования, независимо от типов параметров и типа возвращаемого значения. Подобная идеология применяется при создании шаблонных классов. Использование шаблонов уменьшает объем программ, позволяя языку C++ генерировать операторы для функций, которые отличаются только типами параметров. Шаблоны дают возможность избежать дублирования функций, коды которых отличаются только типами переменных. Кроме того, шаблоны можно использовать для создания типонезависимых или общих классов. Это, в свою очередь, помогает избавиться от дублирования классов, которые отличаются друг от друга только типами переменных. Синтаксис шаблонов классов, например, может быть следующим. template <class T> T max (T a, T b) { if (a > b) return a; else return b; }
template <class T> class Test { public: Test (T t1, T t2); T nam_1 (); T nam_2 (); private: T r; };  

 

16. Алгоритм. Понятие полного построения алгоритма:

Алгоритмом называется точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.

Основными свойствами алгоритма являются:

1. Детерминированность (определенность). Предполагает получение однозначного результата вычислительного процесса при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;

2. Результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;

4. Массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;

5. Дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений;

6. Конечность. Количество шагов алгоритма должно быть конечным;

7. Эффективность. Количество шагов и сами шаги алгоритма должны быть такими, чтобы решение могло быть найдено за конечное и, кроме того, приемлемое время.

Полное построение алгоритма – это разбиение задачи на последовательно выполняемые этапы, причем результаты выполнения предыдущих этапов могут использоваться при выполнении последующих. При этом должны быть четко указаны как содержание каждого этапа, так и порядок выполнения этапов. Отдельный этап алгоритма представляет собой либо другую, более простую задачу, алгоритм решения которой известен (разработан заранее), либо должен быть достаточно простым и понятным без пояснений.

В процессе полного построения алгоритма можно выделить следующие основные этапы:

1. Постановка задачи;

2. Разработка модели;

3. Построение алгоритма;

4. Проверка правильности алгоритма;

5. Анализ алгоритма;

6. Программная реализация алгоритма.

 

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


Дата добавления: 2015-07-15; просмотров: 164 | Нарушение авторских прав


Читайте в этой же книге: История ОПП | Основные идеи ОПП | Вопрос 9. Понятие об ООП. Основные принципы и идеи ООП. | Понятие полиморфизма. Использование в языке. | Сбалансированные деревья | Многоключевые деревья | Матрица смежности | Основы алгоритмов криптографии. | Программная документация. | Генерация кода |
<== предыдущая страница | следующая страница ==>
Абстрактые классы, виртуальные методы. Наследование и замещение методов.| Разделение массива

mybiblioteka.su - 2015-2024 год. (0.006 сек.)