Рекомендуемая категория для самостоятельной подготовки:
Реферат*
Код |
575126 |
Дата создания |
2018 |
Страниц |
17
|
Покупка готовых работ временно недоступна.
|
Содержание
Краткий обзор с++
Парадигмы программирования:
Процедурное программирование
Модульное программирование
Абстракция данных
Пределы абстракции данных
Объектно-ориентированное программирование
Улучшенный С (поддержка процедурного и модульного программирования)
Поддержка абстракции данных
Поддержка объектно-ориентированного программирования
Пределы совершенства
Заключение
Фрагмент работы для ознакомления
Процедурное программирование
Первоначальной (и, возможно, наиболее используемой) парадигмой программирования было:
Определите, какие процедуры вам нужны; используйте лучшие из известных вам алгоритмов!
Ударение делалось на обработку данных с помощью алгоритма, производящего нужные вычисления. Для поддержки этой парадигмы языки предоставляли механизм передачи параметров и получения результатов функций. Литература, отражающая такой подход, заполнена рассуждениями о способах передачи параметров, о том, как различать параметры разных типов, о различных видах функций (процедуры, подпрограммы, макрокоманды, ...) и т.д. Первым процедурным языком был Фортран, а Алгол60, Алгол68, Паскаль и С продолжили это направление.
С продолжили это направление.
Типичным примером хорошего стиля в таком понимании может служить функция извлечения квадратного корня.
...
Модульное программирование
Со временем при в проектировании программ акцент сместился с организации процедур на организацию структур данных. Помимо всего прочего это вызвано и ростом размеров программ. Модулем обычно называют совокупность связанных процедур и тех данных, которыми они управляют.
Парадигма программирования приобрела вид:
Определите, какие модули нужны; поделите программу так, чтобы данные были скрыты в этих модулях Эта парадигма известна также как "принцип сокрытия данных". Если в языке нет возможности сгруппировать связанные процедуры вместе с данными, то он плохо поддерживает модульный стиль программирования. Теперь метод написания "хороших" процедур применяется для отдельных процедур модуля.
Типичный пример модуля - определение стека. Здесь необходимо решить такие
задачи:
• Предоставить пользователю интерфейс для стека (например, функции push () и pop ()).
...
Абстракция данных
Модульное программирование предполагает группировку всех данных одного типа вокруг одного модуля, управляющего этим типом.
Если потребуются стеки двух разных видов, можно определить управляющий ими модуль с таким интерфейсом:
class stack_id { /* ... */ }; // stack_id только тип
// никакой информации о стеках
// здесь не содержится
stack_id create_stack ( int size ); // создать стек и возвратить
// его идентификатор
void push ( stack_id, char );
char pop ( stack_id );
destroy_stack ( stack_id ); // уничтожение стека
Конечно такое решение намного лучше, чем хаос, свойственный традиционным, неструктурированным решениям, но моделируемые таким способом типы совершенно очевидно отличаются от "настоящих", встроенных.
...
Пределы абстракции данных
Абстрактный тип данных определяется как некий "черный ящик". После своего определения он по сути никак не взаимодействует с программой. Его никак нельзя приспособить для новых целей, не меняя определения. В этом смысле это негибкое решение.
Объектно-ориентированное программирование
Объектно-ориентированное программирование наилучшим образом предоставляет технологию управления элементами любой сложности, создавая условия для многократного использования программных компонентов и объединения данных с методами их обработки.
Суть объектно-ориентированного программирования в том, что оно позволяет выражать эти различия и использует их. Язык, который имеет конструкции для выражения и использования подобных различий, поддерживает объектно-ориентированное программирование. Все другие языки не поддерживают его. Здесь основную роль играет механизм наследования, заимствованный из языка Симула.
...
Поддержка объектно-ориентированного программирования
Поддержку объектно-ориентированного программирования обеспечивают классы вместе с механизмом наследования, а также механизм вызова функций-членов в зависимости от истинного типа объекта (дело в том, что возможны случаи, когда этот тип неизвестен на стадии трансляции). Особенно важную роль играет механизм вызова функций-членов. Не менее важны средства, поддерживающие абстракцию данных (о них мы говорили ранее). Все доводы в пользу абстракции данных и базирующихся на ней методов, которые позволяют естественно и красиво работать с типами, действуют и для языка, поддерживающего объектно-ориентированное программирование. Успех обоих методов зависит от способа построения типов, от того, насколько они просты, гибки и эффективны. Метод объектно-ориентированного программирования позволяет определять более общие и гибкие пользовательские типы по сравнению с теми, которые получаются, если использовать только абстракцию данных.
...
Пределы совершенства
Язык С++ проектировался как "лучший С", поддерживающий абстракцию данных и объектно-ориентированное программирование. При этом он должен быть пригодным для большинства основных задач системного программирования.
Основная трудность для языка, который создавался в расчете на методы упрятывания данных, абстракции данных и объектно-ориентированного программирования, в том, что для того, чтобы быть языком общего назначения, он должен:
• идти на традиционных машинах;
• сосуществовать с традиционными операционными системами и языками;
• соперничать с традиционными языками программирования в эффективности выполнения программы;
• быть пригодным во всех основных областях приложения.
Это значит, что должны быть возможности для эффективных числовых операций (арифметика с плавающей точкой без особых накладных расходов, иначе пользователь предпочтет Фортран) и средства такого доступа к памяти, который позволит писать на этом языке драйверы устройств.
...
Список литературы
1. «Бьерн Страуструп. Язык программирования С++»
2. Джесс либерти, «Освой самостоятельно C++ за 21 день», изд. Дом «Вильямс», Москва - Санкт-Петербург – Киев, 2001
3. Н. Секунов, «Самоучитель Visual C++ 6», изд. «БХВ-Петербург», Санкт-Петербург, 2003
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00367