- •Основные этапы проектирования программ
- •Тема: Числовые типы данных. Выражения. Стандартные функции. Решение задач линейной структуры Числовые типы
- •Выражения и операторы действия
- •Ввод и вывод данных
- •Лабораторная работа №1 Тема: Числовые типы данных. Стандартные функции. Задачи линейной структуры Задание 1
- •Задание 2
- •Указание к выполнению: перед составлением программы необходимо выполнить следующие этапы:
- •Образец выполнения задания
- •Writeln(‘значение искомого выражения равно’, y:8:4); {вывод результата на экран}
- •Образец выполнения задания
- •Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Логический тип
- •Условный оператор
- •Оператор выбора
- •Лабораторная работа №2 Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Задание 2
- •Образец выполнения задания
- •Текст программы
- •Тема: Циклические структуры. Программирование циклических алгоритмов. Циклы
- •Простой арифметический цикл (цикл с параметром)
- •Арифметический цикл с произвольным шагом
- •Итерационные циклы
- •Оператор цикла с постусловием
- •Оператор цикла с предусловием
- •Лабораторная работа №3 Тема: Циклические структуры. Программирование циклических алгоритмов. Задание 1
- •Текст программы
- •Приложение: работа в среде программирования Паскаль
- •Работа с окнами
- •Редактирование текста программы
- •Пошаговое выполнение программы
- •Как посмотреть результат выполнения программы?
- •Литература
- •Содержание
Основные этапы проектирования программ
Проектирование и последующая поддержка программного обеспечения включает несколько этапов:
разработка спецификации (specification);
проектирование или конструирование программы (design);
доказательство правильности проекта (verification);
кодирование, т. е. описание программ на языке программирования (coding);
отладка и проверка правильности программ (debugging and testing);
доработка и улучшение программ (refining);
производство окончательного программного продукта (production);
поддержка программного продукта в процессе его использования (maintenance).
Рассмотрим перечисленные этапы более подробно. На первом этапе детально анализируется основная цель разработки программы и составляется подробное описание всех действий, которые она должна выполнять. Такое содержательное описание называется спецификацией. При разработке спецификации необходимо дать ответы на следующие вопросы:
какими должны быть входные данные;
какие данные являются корректными и какие ошибочными;
кто будет использовать разработанное программное обеспечение и каким должен быть интерфейс (средство общения с пользователем);
какие ошибки необходимо выявлять и какие сообщения желательно выдавать пользователю при наличии ошибок;
какие упрощения, предположения и допущения можно сделать по отношению к программам;
перечислить все особые ситуации, которые требуют дополнительного учета и специального рассмотрения;
какими должны быть выходные данные;
какая документация по программам должна быть подготовлена;
как развивать и улучшать программы в будущем.
На этапе проектирования необходимо построить структуру программы, выбрать или разработать все алгоритмы, которые она будет реализовывать, решить все вопросы по организации данных. Здесь эффективным подходом является разделение сложной исходной задачи на некоторые подзадачи.
В частности, общую схему любой программы можно (и даже полезно) представить в виде трех последовательных блоков, причем правильность этой схемы сомнений не вызывает:
Блок 1. Задание исходных данных.
Блок 2. Решение поставленной задачи.
Блок 3. Вывод полученных результатов.
Выделение первого блока полезно для того, чтобы в самом начале проектирования программы подумать о том, что представляют собой ее исходные данные, в каком виде они должны быть представлены во внешней среде и в программе. Если исходные данные при каждом запуске программы должны задаваться человеком, то следует позаботиться об удобстве пользователя. При вводе исходных данных нетрудно допустить ошибку, поэтому при проектировании программы следует продумать, как должна вести себя программа при вводе ошибочных данных, предусмотреть реакцию программы на ошибку.
Многое из того, что говорилось об исходных данных, относится и к окончательным результатам.
После разработки общей структуры программы необходимо выполнить следующие этапы:
установить, какие библиотечные (ранее разработанные) средства можно использовать и какие новые процедуры необходимо разработать;
разработать новые структуры данных и алгоритмы выполнения новых процедур;
обосновать (доказать) правильность проекта. При доказательстве правильности проекта в первую очередь необходимо проверить критические части алгоритмов, какими являются циклы и условные переходы. Выявление ошибок на этом этапе позволяет существенно упростить последующие этапы кодирования и отладки программ;
произвести кодирование, т. е. описание алгоритмов и данных с помощью инструкций выбранного языка программирования. Многие рассматривают этот этап как главный в программировании, хотя в действительности он является относительно второстепенным;
произвести отладку и проверку (тестирование) программы, цель которых — устранение логических ошибок. Основным инструментом здесь являются отладчики, которые позволяют проверить программу в некоторых специальных режимах ее выполнения (пошаговый режим).
В процессе выполнения этапов 1—5 накапливается определенный опыт, который дает основание для усовершенствования программы (этап 6). В этом случае дорабатываются или изменяются некоторые алгоритмы и модули. Усовершенствование не должно приводить к повторению цикла разработки с самого начала.
После завершения программного продукта он передается пользователям (этап 7).
Последующая поддержка программного обеспечения (этап 8) сводится к устранению возможных ошибок, выявленных пользователями на этапе эксплуатации. Другая цель поддержки — постепенное улучшение (развитие и модификация) программного продукта.
Итак, подведем итог и сформулируем требования к выполнению лабораторных работ, обязательные для каждого, кто начинает программировать. Для выполнения лабораторной работы необходимо проделать следующие этапы:
Внимательно прочитать теоретический материал, приведенный перед лабораторной работой, текст лекций по данной теме, соответствующую главу учебника.
Определить количество необходимых переменных для решения задачи, их имена и тип.
Определить входные данные, область допустимых значений и способ их задания.
Определить выходные данные, формат вывода, способ вывода на экран.
Записать словесно по шагам ход решения задачи. Начать следует с разбиения задачи на блоки ввода данных, собственно решения задачи и вывода данных. Каждый блок затем конкретизируется путем разбиения на подзадачи до тех пор, пока решение задачи не будет продумано и записано в мельчайших деталях.
Написать текст программы решения задачи.
Определить заранее значение выходных данных при тестовых значениях входных данных.
Откомпилировать и запустить программу на выполнение.
Провести тестовый прогон программы, сравнить полученные результаты с ожидаемыми.
Проверить работу программы для «пограничных» значений данных, особое внимание уделить конечным значениям параметров циклов.
При необходимости воспользоваться трассировкой программы, проверить правильность работы при пошаговом выполнении.
