Постановка задачи разработки программного обеспечения

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Московский государственный университет печатиразованиюийской Федерации

Попов Д.И Демидов Д.Г.

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ СИ

Конспект лекций

для студентов высших учебных заведений,

обучающихся по специальности 230102.65
«Автоматизированные системы
обработки информации и управления»

Москва

УДК

ББК

П

Рецензенты:

 

 

Попов Д.И. Демидов Д.Г.

Программирование на языке высокого уровня Си: конспект лекций / Д.И.Попов, Демидов Д.Г. – М.: МГУП, 2009. – 202 с.

 

ISBN

 

 

Конспект лекций рассчитан на студентов, владеющих минимальными знаниями и навыками в области информатики и математики. В конспекте лекций представлены основные темы из Государственного образовательного стандарта по дисциплине «Программирование на языке высокого уровня» для студентов высших учебных заведений, обучающихся по специальности 230102.65 «Автоматизированные системы обработки информации и управления». Особое внимание уделяется изучению следующих разделов: основные этапы решения задач на ЭВМ, жизненный цикл и критерии качества программы, проект и спецификация программы, схемы алгоритмов и способы записи алгоритмов, структура программы на языке высокого уровня Си, стандартные типы данных, представление основных управляющих структур программирования, функции, массивы, структуры, работа с файлами, динамические структуры данных, способы реализации линейных списков, стека, деревьев, рекурсивные определения и алгоритмы, программирование рекурсивных алгоритмов.

 

 

ISBN © Попов Д.И., 2009

© Демидов Д.Г., 2009

© Московский государственный

университет печати, 2009

 

Тема 1. Основные этапы решения задач на ЭВМ... 5

Постановка задачи разработки программного обеспечения. 5

Анализ формальной постановки задачи. 6

Выбор или разработка математической модели и метода решения. 7

Разработка алгоритма. 9

Базовые структуры алгоритма. 13

Тема 2. Жизненный цикл программы. Критерии качества программы. 18

Техническое задание и спецификация программы.. 20

Разработка проекта программной системы.. 25

Программирование (кодирование) или программная реализация алгоритмов. 26

Тестирование и отладка. 29

Эксплуатация и сопровождение. 32

Критерии качества программного обеспечения. 32

Тема 3. Схемы алгоритмов, данных, программ.. 37

Символы данных. 40

Символы процесса. 41

Символы линий. 43

Специальные символы.. 43

Правила применения символов в схемах. 44

Правила выполнения соединений. 47

Специальные условные обозначения. 47

Тема 4. Язык программирования высокого уровня Си. 49

Общие сведения о языке Си. 49

Алфавит языка Си. 50

Грамматика для описания языка, синтаксические диаграммы.. 51

Структура программы на языке Си. 55

Имена объектов в программе. 58

Выражения, операции и приоритеты.. 61

Тема 5. Стандартные типы данных. 63

Тема 6. Составные типы данных. 67

Данные регулярного типа (массивы) 67

Строки. 69

Данные комбинированного типа (структуры) 75

Перечисления. 78

Объединения. 80

Указатели. 80

Тема 7. Представление основных управляющих структур программирования. 86

Оператор присваивания. 86

Составной оператор. 87

Оператор перехода goto. 87

Условный оператор if. 88

Оператор выбора switch. 90

Операторы цикла while, do – while, for 91

Операторы прерывания циклов. 95

Форматированный ввод данных. 96

Форматированный вывод данных. 98

Преобразование типов. 100

Инициализация данных. 104

Тема 8. Функции. 106

Определение функций в языке Си. 109

Вызов функций на языке Си. 113

Рекурсивные функции. 121

Тема 9. Файлы.. 134

Тема 10. Приемы программирования. Примеры алгоритмов. 160

Алгоритмы сортировки. 160

Алгоритмы поиска. 164

Динамические структуры данных. 170

Линейные списки. 172

Стек, очередь, дек. 178

Деревья. 184

Приложение 1. Стандартные библиотеки языка Си..........................................................................

Приложение 2. Примеры реализации алгоримтов.............................................................................

Приложение 3. Лабораторные работы.................................................................................................

Список литературы.. 190

 

 


Тема 1. Основные этапы решения задач на ЭВМ

Постановка задачи разработки программного обеспечения

Решение любой прикладной задачи с использованием электронных вычислительных машин (ЭВМ) состоит из следующих этапов: анализ требований и формальная постановка задачи; выбор или разработка математической модели; анализ способов решения; логическое проектирование и разработка алгоритма; кодирование (написание программы); тестирование и отладка программного обеспечения; внедрение, использование и сопровождение программного обеспечения.

Постановка задачи разработки программного обеспечения является самым первым и наиболее важным этапом при проектировании программного обеспечения. Именно здесь закладывается фундамент будущей программы. Если на этом этапе допущены ошибки или не предусмотрены какие-то важные детали, то это отразится на конечном результате, а вносить изменения и исправления в такой проект будет крайне проблематично. Более того, если задача поставлена неверно, то её дальнейшее решение не имеет смысла. На этапе постановки задачи необходимо ответить на следующие вопросы:

· существуют ли методы или способы решения задачи без использования ЭВМ, нужно ли решать данную задачу на ЭВМ;

· какие «дивиденды» принесет использование ЭВМ для решения задачи, что будет улучшено, ускорено, оптимизировано, сэкономлено при использовании ЭВМ, какова основная цель применения ЭВМ;

· что необходимо из оборудования, кроме универсальной ЭВМ, какой тип ЭВМ необходим для решения задачи, какая платформа(ы) ЭВМ может подойти, какая операционная система будет управлять работой ЭВМ, какое дополнительное программное обеспечение нужно;

· каковы бизнес-процессы и документооборот прикладной предметной области, где будет применяться разрабатываемое программное обеспечение;

· каков формат исходных (входных) данных, какие данные и в какой форме необходимы для решения задачи;

· каков формат промежуточных и выходных данных, какие данные и в какой форме необходимо получить;

· какой интерфейс пользователя программного обеспечения нужно обеспечить, какой интерфейс с дополнительным оборудованием необходим;

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