Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Metodichka_po_kursovoy_rabote

.pdf
Скачиваний:
16
Добавлен:
14.03.2016
Размер:
1.35 Mб
Скачать

1

Санкт-Петербургский государственный университет аэрокосмического приборостроения

Кафедра компьютерной математики и программирования

А.А.Ключарёв

ИНФОРМАТИКА

Методические указания к выполнению курсовой работы

Санкт-Петербург

2011

2

1.Этапы разработки программного обеспечения

Впроцессе разработки программ с использованием процедурного подхода можно выделить следующие этапы:

• постановка задачи - определение требований к программному продукту;

• анализ - осуществление формальной постановки задачи и определение методов ее решения;

• проектирование - разработка структуры программного продукта,

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

• реализация - составление программы на выбранном языке программирования, ее тестирование и отладка.

В соответствии с перечисленными этапами разработки программы,

пояснительная записка к курсовой работе должна содержать следующие разделы:

1.Постановка задачи;

2.Анализ, формальная постановка и выбор метода решения задачи;

3.Разработка алгоритмов решения задачи;

4.Тексты и описание программных модулей;

5.Тестирование разработанных программных модулей.

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

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

постановки задачи, в процессе которой определяют требования к

программному продукту.

3

Прежде всего, устанавливают набор выполняемых функций, а также перечень и характеристики исходных данных. Так, для числовых данных может задаваться точность, для текстовых - возможно, размер текста, способ кодировки и т. п. Затем определяют перечень результатов, их характеристики и способы представления (в виде таблиц, диаграмм, графиков и т. п.). Кроме того, уточняют среду функционирования программного продукта:

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

Рекомендуется в раздел «Постановка задачи» включить следующие подразделы:

1.Область применения. Приводится назначение программы,

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

например, отсутствие разрывов, наличие только одного экстремума и т.п.).

2.Требования к интерфейсу пользователя. В этой части следует определить, какие данные, в какой последовательности должны быть введены для организации диалога с пользователем.

Перечисляются виды и формы представления результатов работы программы.

3.Отдельно перечисляются возможные сообщения и реакция программы на ошибки ввода и вычислений. Приводятся тексты сообщений при возникновении ошибок.

4

3. Анализ, формальная постановка и выбор метода решения

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

(метод решения задачи).

В этот раздел целесообразно включить два подраздела, включающих:

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

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

пример ручного счета для тестовой задачи.

На данном этапе по результатам анализа условия задачи выбирают

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

(метод решения задачи).

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

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

Пример (для второго раздела).

5

(Методические указания не ставят целью приводить полное изложение примеров выполнения разделов. В приложении 1 приведено подробное описание методов решения для приведенного примера, которое после соответствующей переработки могут быть использованы в пояснительной записке курсовой работы. Подобные материалы имеются в рекомендованной литературе и в сети Интернет по всем вариантам заданий на выполнение курсовой работы).

Разработать программу, которая с заданной точностью E находит значение аргумента X по заданному значению функции Y при известном значении n. Задан вид функции

y=(x+1)n+1)/x,

где n>1, x>0.

Эта задача сводится к решению нелинейного уравнения вида y-(x+1)n+1)/x=0.

При n >1 данная функция является монотонно возрастающей. Для нахождения значения х можно применить метод половинного деления. Суть данного метода заключается в следующем. Вначале определяют отрезок

[x1,x2] такой, что f(x1]) < Y< f(x2). Затем делят его пополам хt = (x1+x2)/2 и

определяют, в какой половине отрезка находится х, для чего сравнивают f(хt)

и у. Полученный отрезок опять делят пополам и так до тех пор, пока разность x1 и x2 не станет меньше заданного значения E.

Рассмотренный метод иллюстрирует рис.1.

6

Рисунок 1 Графическое объяснение метода решения задачи

Известно, что численное решение подобных задач выполняется в два этапа:

Локализация корней;

Уточнение корней.

4. Разработка алгоритмов решения задачи

Принято различать логическое и физическое проектирование.

Логическое проектирование не учитывает особенностей среды, в которой будет выполняться программа (технические и программные средства компьютера).

При выполнении физического проектирования все эти параметры должны быть учтены. Логическое проектирование. Логическое проектирование при процедурном подходе предполагает детальную проработку последовательности действий будущей программы. Его начинают с определения структуры будущего программного продукта:

отдельная программа или программная система, состоящая из нескольких

7

взаимосвязанных программ. Затем переходят к разработке алгоритмов программ.

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

Различают последовательности действий (вычислений) линейной,

разветвленной и циклической структуры.

Линейная структура процесса вычислений предполагает, что для получения результата необходимо выполнить некоторые операции в определенной последовательности. Например, для определения площади треугольника по формуле Герона необходимо сначала определить полупериметр треугольника, а затем по формуле его площадь.

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

то действительных корней нет.

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

Процессы вычислений циклической структуры в свою очередь можно разделить на три группы:

• циклические процессы, для которых количество повторений известно

– (счетные циклы или циклы с заданным количеством повторений);

• циклические процессы, завершающиеся по достижении или нарушении некоторых условий - итерационные циклы;

8

• циклические процессы, из которых возможны два варианта выхода:

выход по завершении процесса и досрочный выход по какому-либо дополнительному условию - поисковые циклы.

Формальное описание алгоритмов осуществляют с использованием схем алгоритмов и псевдокодов.

На изображение схем алгоритмов существует ГОСТ 19.701-90,

согласно которому каждой группе действий ставится в соответствие блок особой формы.

Некоторые часто используемые обозначения приведены в табл. 1.

Основные элементы схем алгоритма

 

 

 

Таблица 1

 

 

 

Наименование

Обозначение

 

 

Функция

 

 

 

 

 

Элемент

отображает

вход

 

из

 

внешней

среды или выход из нее

Блок начало-конец

(наиболее

 

частое

применение

(пуск-остановка)

начало и конец программы). Внутри

 

фигуры

 

 

 

записывается

 

соответствующее действие.

 

 

 

 

Выполнение

одной или нескольких

 

операций, обработка данных любого

Блок вычислений

вида

(изменение значения данных,

формы

 

 

 

представления,

(вычислительный

 

 

 

расположения). Внутри фигуры

блок)

записывают

непосредственно

сами

 

 

операции, например, операцию

 

присваивания a = 10*b + c.

 

 

 

 

Отображает

решение или

функцию

 

переключательного

типа

с

одним

 

входом и двумя или более

 

альтернативными

выходами,

 

из

 

которых только один может быть

 

выбран после вычисления условий,

Логический блок

определенных

 

внутри

 

 

этого

элемента.

 

Вход

в

 

элемент

(блок условия)

 

 

обозначается

линией,

входящей

 

 

обычно

в

 

верхнюю

вершину

 

элемента. Если выходов два или три

 

то

обычно

каждый

 

выход

 

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

 

оставшихся вершин (боковых и

 

нижней). Если выходов больше трех,

9

то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае − сравнение (три выхода: >, <, =); в программировании − условные операторы if (два выхода: true, false) и case (множество выходов).

 

 

 

 

 

 

Символ

отображает

выполнение

 

 

 

 

 

 

процесса, состоящего из одной или

 

 

 

 

 

 

нескольких

операций,

который

 

 

 

 

 

 

определен в другом месте программы

 

 

 

 

 

 

 

Предопределенный

 

 

 

 

(в подпрограмме,

модуле). Внутри

 

процесс

 

 

 

 

символа

 

записывается

название

 

 

 

 

 

 

процесса и передаваемые в него

 

 

 

 

 

 

 

 

 

 

 

 

данные.

 

Например,

 

в

 

 

 

 

 

 

программировании

 

вызов

 

 

 

 

 

 

процедуры или функции.

 

 

 

 

 

 

 

 

Преобразование данных в форму,

 

 

 

 

 

 

пригодную для обработки (ввод) или

 

 

 

 

 

 

отображения результатов обработки

 

Данные

 

 

 

 

(вывод).

 

Данный

символ

не

 

(ввод-вывод)

 

 

 

 

определяет

носителя

данных

(для

 

 

 

 

 

 

указания

 

типа

носителя

данных

 

 

 

 

 

 

используются

 

специфические

 

 

 

 

 

 

символы).

 

 

 

 

 

 

 

 

 

 

 

 

Символ состоит из двух частей −

 

 

 

 

 

 

соответственно, начало и конец

 

 

 

 

 

 

цикла − операции, выполняемые

 

 

 

 

 

 

внутри цикла, размещаются между

 

 

 

 

 

 

ними. Условия цикла и приращения

 

 

 

 

 

 

записываются внутри символа начала

 

Граница цикла

 

 

 

 

или конца цикла − в зависимости от

 

 

 

 

 

 

 

 

 

 

типа организации цикла. Часто для

 

 

 

 

 

 

 

 

 

 

 

 

изображения на блок-схеме цикла

 

 

 

 

 

 

вместо данного символа используют

 

 

 

 

 

 

символ решения, указывая в нем

 

 

 

 

 

 

условие, а одну из линий выхода

 

 

 

 

 

 

замыкают выше в блок-схеме (перед

 

 

 

 

 

 

операциями цикла).

 

 

 

 

 

 

 

 

 

Символ отображает вход в часть

 

Соединитель

 

 

 

 

схемы и выход из другой части этой

 

 

 

 

 

 

 

 

 

 

схемы. Используется для обрыва

 

 

 

 

 

 

 

 

 

 

 

 

линии и

продолжения ее

в другом

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

месте (для избежания излишних

 

 

 

 

 

пересечений или слишком длинных

 

 

 

 

 

линий, а также, если схема состоит

 

 

 

 

 

из

нескольких

страниц).

 

 

 

 

 

Соответствующие соединительные

 

 

 

 

 

символы должны иметь одинаковое

 

 

 

 

 

(при том уникальное) обозначение.

 

 

 

 

 

 

Используется для более подробного

 

 

 

 

 

описания шага, процесса или группы

 

 

 

 

 

процессов. Описание помещается со

 

 

 

 

 

стороны

квадратной

скобки

и

 

 

 

 

 

охватывается ей по всей высоте.

 

 

 

 

 

Пунктирная

линия

идет

 

к

 

 

 

 

Коментарии к операциям

описываемому

элементу,

либо

 

 

 

 

 

Комментарий

 

 

 

группе элементов (при этом группа

 

 

 

 

 

 

 

 

выделяется замкнутой

пунктирной

 

 

 

 

 

 

 

 

 

 

линией). Также символ комментария

 

 

 

 

 

следует использовать в тех случаях,

 

 

 

 

 

когда объём текста, помещаемого

 

 

 

 

 

внутри некоего символа (например,

 

 

 

 

 

символ процесса, символ данных и

 

 

 

 

 

др.), превышает размер самого этого

 

 

 

 

 

символа.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для рисования схем алгоритмов удобно использовать программу Microsoft Office Visio.

При разработке алгоритма каждое действие обозначают соответствующим блоком, показывая их последовательность линиями со стрелками на конце. Для простоты чтения схемы желательно, чтобы линия входила в блок сверху, а выходила снизу. Если линии идут не слева направо и не сверху вниз, то стрелка в конце линии обязательна, в противном случае

ееможно не ставить.

Вслучае, когда схема алгоритма не умещается на листе, используют соединители. При переходе на другой лист или получении управления с другого листа в комментарии указывается номер листа, например «с листа 3» «на лист 1».

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]