Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль / 1 семестр / лекции / Глава01-02.doc
Скачиваний:
56
Добавлен:
30.04.2013
Размер:
286.21 Кб
Скачать

1.3. Внешняя спецификация программы

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

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

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

Внешняя спецификация прикладной программы включает:

  • назначение программы;

  • описание входных данных;

  • описание формы представления результатов при допустимых входных данных;

  • перечисление аномалий во входных данных и реакций программы на них.

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

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

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

Внешняя спецификация:

Назначение:

Решение квадратного уравнения

Входн. данные:

a, b, c - вещественные числа

Вых. данные:

КВАДРАТНОЕ УРАВНЕНИЕ

<a>*X^2+<b>*X+<c>=0

< результаты-решения >

где результаты-решения:

< КОРНИ: X1 = <x1> X2 = <x2> >

где х1, y1 - вещественные числа.

Аномалии входных данных:

(1) при (a=0)

Недопустимо: а = 0

(2) при (b2-4ac) < 0

Вырождено: b^2-4ac < 0

Программа может быть хорошей и плохой.

В случае плохой программымогут иметь место:

  • непонятный текст выходных данных;

  • аварийное завершение ее при недопустимых входных данных. (При этом часто отсутствуют сообщения с разъяснением причины).

Прикладная программа считается хорошей, если выполнены следующие требования:

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

  • тексты с выходными данными легко записываются и легко исправляются;

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

Для описания форм текстов выходных данных часто используют специальные средства, называемые нормальными формами Бэкуса. Нормальные формы позволяют описывать некоторую совокупность текстов с определенной структурой составляющих. Их можно использовать также и при описании форм записи алгоритмов. Мы воспользуемся некоторыми из них. В частности, переменные элементы формы и части текстов в нормальных формах мы будем обозначать заключенными в угловые скобки словами или словосочетаниями, в которых отдельные слова соединены знаками дефиса.

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

Вых. данные: Образец:

ЭЛЕКТРИЧЕСКАЯ ЦЕПЬ: ЭЛЕКТРИЧЕСКАЯ ЦЕПЬ:

<r1>+(<r2>||<r3>) ом 1.0 + (1.0 || <1.0) ом

НАПРЯЖЕНИЕ: U=<u> B НАПРЯЖЕНИЕ: U= 3.0 B

<результаты-решения> МОЩНОСТЬ: W= 6.0 ВТ

Здесь

<r1>,<r2>,<r3> - обозначения конкретных числовых значений сопротивлений,

<u> - обозначение конкретного значения напряжения,

а <результаты-решения> - это составляющая выходного текста, которая варьируется в зависимости от значений входных данных.

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

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

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

Вариант 1. Вариант 2.

Вых. данные: Вых. данные:

<заголовок>

ЭЛЕКТРИЧЕСКАЯ ЦЕПЬ:

<входные-данные> R1 + ( R2 || R3 ) ом

R1=<r1> R2=<r2> R3=<r3>

<результаты-решения> НАПРЯЖЕНИЕ: U=<u> B

где заголовок:

а) МОЩНОСТЬ: W = 6.0 ВТ

ЭЛЕКТРИЧЕСКАЯ ЦЕПЬ:

R1 + ( R2 || R3 ) ом

б) ЗАМЫКАНИЕ: Rобщ=0

где входные-данные:

R1=<r1> R2=<r2> R3=<r3> в) СОПРОТИВЛЕНИЕ < 0

НАПРЯЖЕНИЕ: U=<u> B

где результаты-решения:

а) МОЩНОСТЬ: W = 6.0 ВТ

б) КОРОТКОЕ ЗАМЫКАНИЕ: Rобщ=0

в) СОПРОТИВЛЕНИЕ < 0

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

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

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

Пример.

результаты-решения:образец:

[<промежуточные-результаты>] [ Дискриминант: D = <d>]

<требуемые-результаты> Корни: Х1=<x1> X2=<x2>

Соседние файлы в папке лекции