Оглавление
Учебное пособие
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
М.В. Аристов, Д.И. Полетаев
Учебное пособие
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
М.В. Аристов, Д.И. Полетаев
Искусство адаптации на рабочем месте. Социально-психологическое сопровождение сотрудников в период адаптации.
Псков
Издательство ПсковГУ
Министерство образования и науки Российской Федерации
Псковский государственный университет
Рекомендовано к изданию кафедрами
«Информационные системы и технологии»
и
«Вычислительная техника»
Псковского государственного университета
Псков
Издательство ПсковГУ
УДК 004.42
А813
ББК 32.97-018.2
Рецензенты:
Ильин С.Н., заместитель генерального директора ОАО «СКБ Вычислительной техники»;
Лёхин С.Н., к.т.н., декан факультета Информатики, заведующий кафедрой «Вычислительная техника».
Рекомендовано кафедрами «Информационные системы и технологии» и «Вычислительная техника» Псковского государственного университета
|
|
Аристов М.В.., Полетаев Д.И. Технологии программирования. — Псков: Изд-во Псков ГУ, 2013. — 128 с.
Учебное пособие предназначено для студентов всех форм обучения факультета Информатики Псковского государственного университета по направлению подготовки 230100 "Информатика и вычислительная техника". Может быть использовано студентами других вузов технических специальностей и направлений подготовки дипломированных специалистов.
Учебное пособие содержит описание синтаксиса и семантики языка программирования высокого уровня Си, примеры реализации типовых алгоритмов и структур данных с использованием Си, а также технологии и этапы разработки программных продуктов.
ISBN
УДК 004.42
ББК 32.97-018.2
© Псковский государственный
университет, 2013.
© Аристов М.В., Полетаев Д.И., 2013.
Введение............................................................................................... 6
1. Языки программирования «С», «С++».......................................... 7
1.1. Характеристика языков «С» и «С++»............................ 7
1.2. Переменные. Типы данных........................................... 13
1.3. Константы...................................................................... 16
1.4. Операции........................................................................ 18
1.5. Операторы ветвления и цикла...................................... 20
1.6. Функции......................................................................... 22
1.7. Указатели. Массивы. Строки........................................ 25
1.8. Организация ввода-вывода........................................... 31
1.9. Директивы препроцессора............................................ 36
1.10. Метки. Безусловный переход...................................... 37
1.11. Многофайловые проекты. Время жизни и область видимости переменных........................................................................................................ 37
|
|
1.12. Введение в объектно-ориентированное программирование 42
1.13. Примеры программ..................................................... 44
Контрольные вопросы......................................................... 52
2. Введение в технологию программирования................................ 53
2.1 Общие положения........................................................... 53
2.2. Жизненный цикл программного продукта.................. 59
2.3. Стратегии разработки программных средств............. 61
2.4. Реализация стратегий разработки ПС в различных моделях проектирования........................................................................................................ 61
2.5. Процессы проектирования программного продукта.. 71
2.6. Декомпозиция подсистемы на модули.......................... 74
2.7. Кодирование.................................................................. 79
2.8. Процессы тестирования программного продукта....... 80
2.9. Основные принципы тестирования ПО........................ 82
2.10. Особенности функционального тестирования программного обеспечения......................................................................................................... 90
2.11. Организация процесса тестирования ПО................... 94
2.12. Тестирование интеграции............................................ 97
2.13 Системное тестирование............................................. 102
2.14. Документирование..................................................... 104
2.15. Проектирование пользовательского интерфейса..... 104
Контрольные вопросы....................................................... 107
Часть 3. Типовые структуры данных.............................................. 108
3.1. Общие сведения........................................................... 108
3.2 Основные структуры данных....................................... 108
3.3. Упорядоченные структуры данных............................ 112
3.4. Деревья......................................................................... 115
3.5. Множества, графы....................................................... 118
3.6. Строки.......................................................................... 120
3.7. Библиотека STL........................................................... 122
Контрольные вопросы....................................................... 125
Список литературы............................................................ 126
Введение
Настоящее пособие содержит описание синтаксиса и семантики языка программирования высокого уровня Си с примерами реализации типовых алгоритмов и структур данных с использованием Си, а также технологии и этапов разработки программных продуктов
В первой главе приведены сведения о синтаксисе и семантике языков программирования высокого уровня «С» и «С++». Для усвоения приведенного материала достаточно базовых знаний в области алгоритмических структур и представления о языках программирования высокого уровня.
При изложении материала главы используются следующие мета-конструкции:
- текст, заключенный в квадратные скобки и выделенный курсивом, указывает на необязательную часть языковой конструкции, например [else оператор2;]
- символ → обозначает результат операции
- многоточие в примерах обозначает множество операторов, содержание которого для примера не важно.
Примеры, приводимые в тексте, содержат фрагменты программ, для их понимания достаточно сведений из предыдущих параграфов. Такие примеры выделены курсивом. Более сложные примеры, в том числе завершённые программы, приведены в последнем параграфе главы.
По языку Си рекомендуется литература [1] — [3], по С++ — [4]. Общие подходы к программированию изложены в [5].
Во второй главе рассматриваются основные понятия технологии разработки программного обеспечения, этапы проектирования программного продукта и методика его тестирования. Подходы к проектированию изложены в [6]-[9]. Дополнительно с принципами объектной декомпозиции систем можно ознакомиться в [10] — [11].
Третья глава посвящена основным структурам данных и механизмам их обработки с примерами на С++. Для лучшего понимания изложенного материала желательно знакомство с курсом «Дискретная математика», а также знание основ С++. Литература по разделу: [5,12]
|
|
1. Языки программирования «С», «С++»
1.1. Характеристика языков «С» и «С++»
Си (англ. C) — стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Денисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. С тех пор он был портирован на многие другие операционные системы и стал одним из самых используемых языков программирования. Синтаксис языка Си стал основой для многих других языков.
Язык программирования Си был разработан в лабораториях Bell Labs в 1973 году. Язык назвали «Си», потому что многие его особенности берут начало от старого языка «Би». В 1978 году Ритчи и Керниган опубликовали первую редакцию книги «Язык программирования Си». Эта книга, известная среди программистов как «K&R», служила многие годы неформальной спецификацией языка. Версию языка Си, описанную в ней, часто называют «K&R C». В 1983 году Американский национальный институт стандартов (ANSI) сформировал комитет для разработки стандартной спецификации Си, которая была утверждена в 1989 году как «Язык программирования Си» ANSI X3.159-1989. Эту версию языка принято называть ANSI C или C89. В 1990 году стандарт ANSI C был принят с небольшими изменениями Международной организацией по стандартизации (ISO) как ISO/IEC 9899:1990. В конце 1990-х годов стандарт подвергся пересмотру, что привело к публикации ISO 9899:1999 в 1999 году. Этот стандарт обычно называют «C99». По состоянию на 2013 год GCC и другие компиляторы языка Си поддерживают многие нововведения стандарта C99. Тем не менее, ощущается недостаточная поддержка стандарта со стороны крупных производителей средств разработки, таких как Microsoft и Borland. В марте 2000 года стандарт был принят и адаптирован ANSI. 8 декабря 2011 опубликован новый стандарт для языка Си (ISO/IEC 9899:2011). Некоторые возможности нового стандарта, по состоянию на 2013 год, уже поддерживаются компиляторами GCC и Clang.
Стандартной библиотекой языка Си (также известная как libc, crt) называется часть стандарта ANSI C, посвященная заголовочным файлам и библиотечным подпрограммам. Стандартная библиотека обычно поставляется вместе с компилятором. Стандартные библиотеки конкретных реализаций компиляторов могут расширять стандарт, при этом расширения в различных компиляторах, как правило, не совместимы между собой.
|
|
В настоящее время язык С используется в основном для учебных целей, системного программирования на персональных ЭВМ и для программирования микроконтроллеров.
C++ — компилируемый статически типизированный язык программирования общего назначения. Поддерживает такие парадигмы программирования как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции.
Язык был разработан в начале 1980-х годов сотрудником фирмы Bell Labs Бьёрном Страуструпом. В 1985 году вышло первое издание «Языка программирования C++», обеспечивающее первое описание этого языка. В 1989 году состоялся выход C++ версии 2.0. В 1998 году был опубликован стандарт языка ISO/IEC 14882:1998 (известный как C++98). В 2003 году был опубликован стандарт языка ISO/IEC 14882:2003, где были исправлены выявленные ошибки и недочёты предыдущей версии стандарта. С 2009 года велась работа по обновлению предыдущего стандарта, предварительной версией нового стандарта сперва был C++99, а спустя год C++0x. В 2011 году принят C++11, куда были включены дополнения в ядро языка и расширение стандартной библиотеки.
Язык С++ расширяет язык С в части поддержки объектно-ориентированного программирования. Следует отметить, что, хотя данные языки являются родственными, начиная с С99, они не являются полностью совместимыми даже в области структурного программирования.