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

281

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.Анализ результатов решения 37

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программирование с использованием подпрограмм 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

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

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

Функция atoi( ) 188

Функция atol( ) 189

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

203

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

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

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

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

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

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

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

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

211

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

Структуры. 214

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

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

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

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

Классы 228

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

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

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

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

Указатель this 248

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

Классы ObjectWindows 252

Класс TApplication 252

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

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

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

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

MDI-окна 254

Меню 255

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

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

Графика 257

Печать 258

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

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

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

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

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

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

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

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

269

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

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

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

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

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

Функция CanClose() 284

Приложение 1

КОДЫ КЛАВИШ 1

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

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

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% от выращенного.