Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции программирование.doc
Скачиваний:
35
Добавлен:
05.11.2018
Размер:
4.73 Mб
Скачать

282

1. ОСНОВНЫЕ ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНЫХ ПРОДУКТОВ 7

1.1 Постановка задачи 7

Словесная формулировка 7

Формульная постановка задачи 9

1.2 Создание программного продукта 10

1.2.1.Формирование математической модели 11

1.2.2.Алгоритмизация задачи 23

Программирование задачи 31

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

1.2.4. Работа с результатами 37

1.2.5.Анализ результатов решения 38

1.2.6.Принятие решения 38

1.2.7.Составление технической документации 38

1.3.Полная обработки задачи пользователя 39

1.4.Обеспечение эффективности разработки программных продуктов 40

2.ЯЗЫК ПРОГРАММИРОВАНИЯ С++ 50

2.1 Ключевые слова C++ 50

2.2. Расширения C++ по сравнению с Си стандарта ANSI 50

2.3 Ключевые слова, специфические для C++ 51

2.4 Регистровые псевдопеременные Borland C++ 51

2.5 Идентификаторы 51

2.6 Описание операций 52

2.6.1 Унарные операции 52

2.6.2 Бинарные операции 52

2.6.3 Пунктуаторы 54

2.6.4 Ассоциативность и приоритеты операций Borland C++ 54

2.6.5 Размер памяти и диапазон значений стандартных типов данных СИ/СИ++ 55

ПРОГРАММИРОВАНИЕ ПРОСТЫХ ВЕТВЛЕНИЙ 57

Правила составления и использования 58

Укороченный оператор условного перехода 60

Технология программирования арифметических циклов 69

Циклы с аналитическим заданием аргумента 71

Постановка задачи 72

Формирование математической модели 72

Выбор метода решения 72

Составление алгоритма 73

Циклы с табличным заданием аргумента 89

Постановка задачи 99

Математическая формулировка 99

Выбор метода решения 99

Составление алгоритма решения 100

Программирование задачи 103

Улучшение качества программных продуктов 110

Организация ввода-вывода 110

Использование укороченных спецификаторов 110

Организация ввода в диалоге 114

Варианты ввода массивов 117

Оформление выводимых величин 119

Управление выполнением программ 121

Использование составных присваиваний 121

Выбор устройства вывода 123

Повторение расчётов 127

Приостановка вывода 128

Очистка экрана 129

Позиционирование курсора 130

Пример улучшения качества 132

Программирование с использованием подпрограмм 138

Подпрограмма с одним результатом 143

Формирование математической модели 143

Выбор метода решения 143

Составление алгоритма решения 144

Программирование задачи 145

Подпрограмма с аргументом – одномерным массивом 152

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

Формирование математической модели 153

Выбор метода решения 153

Составление алгоритма решения 154

Программирование задачи 154

Подпрограмма с несколькими результатами 161

Постановка задачи 161

Формирование математической модели 161

Выбор метода решения 161

Составление алгоритма решения 162

Программирование задачи 163

Подпрограмма с результатом – массивом 170

Постановка задачи 170

Математическая формулировка 170

Выбор метода решения 172

Составление алгоритма решения 173

Программирование задачи 174

Обработка текстовой информации в Си 181

Символьные строки 181

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

Массивы строк 183

Ввод строки 185

Выделение памяти 185

Функции ввода символьной строки 186

Преобразование символьных строк 188

Функция atoi( ) 188

Функция atol( ) 189

Функции atof( ) и atold( ) 189

Методика ввода числовых данных с использованием функции gets( ) 191

Вывод строки 191

Вывод строки функциями printf( ) и fprintf( ) 191

Вывод строки функциями puts( ) и fputs( ) 192

Перевод чисел в формат символьной строки 193

Обработка символьных строк 194

Определение длины строки 194

Объединение строк 195

Копирование строк 195

Сравнение строк 196

Функции по работе с датой и временем. 203

Функция приостановки времени на заданный интервал 203

Функция получения системного времени 203

Функция определения разницы во времени между двумя событиями. 203

204

Функция помещения текущего времени в структуру timeb. 204

Функция определения времени процессора. 205

Функция преобразования даты и времени в символьную строку. 206

Функция получения системной даты и времени. 207

Функция преобразования значения даты и времени в структуру tm 208

Функция получения дату и время модификации файла. 209

Функция получения системное время. 210

Функция перевода даты и времени в значение по Гринвичу. 211

212

Функция установки даты и времени создания / модификации файла. 212

Структуры. 215

Работа с дисками. 219

Операции динамического распределения памяти. 223

ОБЪЕКТНО−ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 226

Принципы объектно-ориентированного программирования 226

Классы 229

Конструкторы и деструкторы. 239

Список инициализации элементов 239

Конструкторы по умолчанию и 246

конструкторы копирования 246

Указатель this 249

Встраиваемые (inline-) функции 250

Классы ObjectWindows 253

Класс TApplication 253

Оконные классы 254

Дочерние окна общего вида 254

Родительские окна 254

Декорированные обрамляющие окна 255

MDI-окна 255

Меню 256

Окна диалога 257

Элементы управления 257

Графика 258

Печать 259

Контроль ввода 260

Просмотр документов 260

Буфер обмена 261

Создание объекта приложения 262

Понятие об основном окне приложения 264

Создание регулируемого (настраиваемого) окна 266

Создание окна на базе TFrameWindow 268

Создание настраиваемого основного окна 269

270

Как отвечать на сообщения Windows 270

Как вставить в класс окна таблицу ответов 273

Написание функций ответа на сообщения 275

Установка атрибутов окна 276

Закрытие окна 281

Функция CanClose() 285

Приложение 1

КОДЫ КЛАВИШ 1

Краткий справочник по Си 1

Библиографический список 13

1. Основные этапы разработки программных продуктов

Технологии познания человеком окружающего мира различны. Одна из них реализуется в форме решения задач.

Технология решения любой задачи может быть представлена следующим образом (рис. 1.1).

Рис. 1.1. Технология решения задачи

Схема предполагает, что любая пользовательская задача при решении должна пройти четыре основных этапа:

  • словесное (формульное) описание;

  • создание программного продукта (предмашинная подготовка);

  • реализация программного продукта (машинная обработка);

  • работа с результатами.

Рассмотрим каждый из перечисленных этапов.

1.1 Постановка задачи

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

Иначе говоря, постановка задачи есть полное детальное описание – что, из чего и каким образом необходимо получить.

Постановка задачи может быть выполнена в словесной и (или) математической форме. Рассмотрим эти составляющие подробно.

Словесная формулировка

Словесная формулировка – представление задачи в общепринятой для человека-пользователя разговорной форме.

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

Словесная формулировка может выполняться поэтапно, определяя сначала цель задачи, а затем уточняя и раскрывая средства достижения этой цели. Конечный вариант должен содержать исчерпывающие сведения о каждом из используемых данных (включая классификацию по возможным критериям), а также нестандартные закономерности, связывающие данные между собой.

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

Эти недостатки ликвидированы в откорректированной формулировке:

Пример 1.1. Рассчитать значение силы тока (мА) в замкнутой цепи, если напряжение источника равно ~ 220 В. Цепь составляют активные нагрузки в 20 Ом; 180 Ом и 1,1 КОм, соединенные последовательно. Внутренним сопротивлением источника пренебречь.

Задача расчёта площади круга по известной зависимости также сформулирована неудачно. С одной стороны она содержит избыточную информацию (общеизвестную формулу вычисления площади), а с другой – не позволяет однозначно понять форму входных данных (конкретные значения и размерности) и размерность выходных.

Откорректированная формулировка имеет вид:

Пример 1.2. Рассчитать возможные значения площадей круга (м2) с заданной степенью точности (0,001), если его диаметр изменяется от 35 см до 120 см с шагом 1/10 м.

Аналогично неудачно выполнена и следующая постановки задачи:

Рассчитать количество картофеля, вывезенного с поля размером , если урожайность равна 180 ц/га и потери при уборке составляют 12,7%.

Недостатки: неудачное определение цели расчета (рассчитать количество), нечеткость задания объектов (длины и ширины поля), отсутствие размерностей (размеры поля), неполная расшифровка внутренних закономерностей (не указана форма поля, не конкретизированы потери).

Исходя из изложенного, составим общие правила получения словесного описания:

  • Сформулировать цель решения (отчетливо и полно).

  • Определить все объекты задачи с указанием их классификации (по различным критериям), значений и размерностей.

  • Описать внутренние связи объектов задачи с учётом всех возможных вариантов решения и условий выбора каждого из них.

  • Установить границы применимости задачи и действия в случае выхода за них.

Откорректируем постановку задачи о картофеле в соответствии с правилами:

Пример 1.3. Рассчитать товарную массу картофеля (в тоннах) с поля прямоугольной формы длиной 1,2 км и шириной 750 м, если биологическая урожайность составляет 180 ц с гектара, а общие потери при уборке и перевозке составляют 12,7% от выращенного.